2

在消息驱动的 bean 中,我将条目持久保存到具有唯一条目的查找表中。基本上我使用标准 api 创建一个选择语句,如果我没有找到一个条目,我创建一个。

目前此代码遇到 mysql 错误,因为在某些情况下,此条目创建 ( em.persist(entry)) 会违反我数据库上的唯一约束。我的 mdb 的另一个实例在我没有找到它并且在我创建它之前创建了查找条目。

我该如何处理这个同步问题,所以仍然只有一个条目?

4

1 回答 1

1

您需要使用SELECT FOR UPDATE或以不同的方式确保唯一性(例如在 Java 中生成条目的唯一部分)。

Hibernate 支持悲观锁,我认为这只是同一事物的另一个名称。

于 2011-04-15T14:10:05.287 回答