如果唯一键匹配,则跳过持久化实体

时间:2012-06-18 09:33:17

标签: java mysql jpa

让我们说我有一个名为" A"的实体。它有两个名为name和systemId的列。 这些列约束唯一键。例如,它不允许具有systemId" 1"的重复实体。并命名"测试"。

我的问题是:我想插入A个实体的集合。我想跳过重复的实体,只需插入新的实体。如果唯一约束失败,EntityManager是否能够跳过这些实体? 我怎么能成功呢?

1 个答案:

答案 0 :(得分:3)

JPA不允许进行错误处理,如果发生任何错误,则需要将事务标记为回滚。

您可以在单独的事务中插入每个事务,或者将整个事务放入重试中并拒绝每次传递失败的对象。您还可以先在唯一字段上执行选择,然后跳过该对象(如果已存在)。