我想知道使db update thread安全的最佳做法是什么。
我正在调用无状态会话bean的
public void addReservation(预订)
在添加此预订之前 - 我想使用实体bean的方法检查是否仍有有效的预订位置
public boolean isThereRoomForAnotherReseravtion()
我读here同步方法无法解决问题。
我想过使用存储过程和解决方案的验证规则,但听起来不对。
是否有使编写程序线程安全的标准做法?
此致
丹尼
答案 0 :(得分:4)
没有Java同步实际上可以帮助您,因为可以始终存在可以同时访问数据库的第二个数据库客户端(甚至可能是您在集群环境中的应用程序)。
您需要深入了解数据库层并使用数据库锁定工具,如乐观/悲观锁定。 JPA 1.0支持前者,2.0支持两者。选择取决于您怀疑要经历多少并发。