假设我有一个名为“A”的实体。它有两列,分别名为 name 和 systemId。这些列约束唯一键。例如,它不允许 systemId“1”和名称“test”的重复实体。
我的问题是:我想插入 A 实体的集合。我想跳过重复的实体,只需插入新的实体。如果唯一约束失败,EntityManager 是否能够跳过这些实体?我怎样才能成功呢?
JPA 不允许错误处理,它要求将事务标记为在发生任何错误时进行回滚。
您可以将每个事务插入到单独的事务中,或者将整个事务置于重试中并拒绝每次传递失败的对象。您还可以首先对唯一字段进行选择,然后跳过该对象(如果该对象已存在)。