我有以下代码来访问数据库
Session session = sessionFactory.openSession();
String hql ="Select o.id FROM Orders o ORDER BY o.id DESC";
Query query = session.createQuery(hql);
query.setFirstResult(0);
query.setMaxResults(1);
根据提取的数据进行一些计算,并且计算产生的数据应该是唯一的
session.save(inOrder);
session.flush();
session.clear();
session.close();
但是当我在两个请求同时到来时运行此代码时,它们会获得相同的数据并抛出 ConstraintViolationException。
解决这个问题的最佳方法是什么
最佳答案
您可以使用 setLockMode 锁定正在处理的对象,请参阅 docs
关于java - Hibernate 中的并发访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26837293/