我正在编写一个应用程序,将第三方数据源中的实体同步到我们自己的模式中,中间有一个转换/映射步骤。我正在使用 Hibernate 在我们自己的模式中表示和持久化实体。我遇到的一个问题是我的一张表上有一个唯一的多列键。我希望看到的行为类似于 upsert:当 Hibernate 去持久化一个实体并检测到一个唯一的约束违规时,它会进行更新。我们正在使用 MySQL,它提供了 INSERT ... ON DUPLICATE KEY UPDATE 语法,但我不确定如何或是否可以使用 Hibernate?
我想我总是可以尝试插入,如果我发现异常进行更新,但这似乎很笨拙且不理想。关于清洁方式的任何提示?