【发布时间】:2013-03-31 15:55:47
【问题描述】:
我有一个具有唯一字段的实体 A,该字段基本上定义了实体,这意味着它是相等的,那么实体也完全相同。
第二点是,如果违反该约束,我们绝不会例外。这意味着完全可以预期用户会尝试输入重复项。
在重复的情况下,应用程序应该默默地选择已经存在的实体。我现在的问题是我应该做什么,尤其是在保存包含 As 列表的实体时。
- 只需捕获异常并从那里开始
我不确定这是否容易实现,因为 DataIntegrityViolationException 不包含任何易于处理的信息,例如在 Cascaded persist 的情况下受影响的实体!!!
- 保存前检查(保留)并将提交的实体替换为现有实体(已设置 id)
我更喜欢这样,但是开销很大,因为在每次插入之前可能会有多个选择(存在检查)。
什么是更好的方法?
【问题讨论】:
标签: hibernate jpa unique-constraint