我有一个实体A具有独特的领域,该领域基本上定义的实体处理,这意味着它是相等的,那么则实体也完全一样。JPA(休眠)+春季:具有独特的违反约束
的第二点是,它绝不例外让说如果违反约束。意思是完全预计用户将尝试输入重复。
在重复的情况下,应用程序应该默默的选择了已经存在的实体。我的问题是现在我应该做什么,特别是在保存包含As列表的实体时。
- 刚刚捕获异常,并从那里去
我不知道这是很容易尽可能DataIntegrityViolationException不成立像什么实体的情况下受到影响的级联坚持任何容易处理的信息!
- 检查之前保存(坚持),并与现有的更换提交的实体(即有一个ID集)
我喜欢这更然而,有一个相当大的开销,因为那时有可能有多个选择(存在检查)之前插入每个插入。
有什么更好的办法?
关于1)我可以做同样的检查,作为2)异常发生后。然后,我可以用我们自己的例外情况来详细说明违反了哪个唯一约束条件。我觉得这样比较好?因为检查仅在需要时完成。 –
这可能会工作,但在这种情况下,你没有保存任何东西到数据库的情况下重复的ID,我虽然你想执行更新。 – ilcavero