作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
全部。
我正在使用纯 JPA 编写程序,其提供程序为 hibernate,底层数据库为 Azure SQL DB。该程序将在分布式环境下运行,它的许多副本将运行在不同的服务器上。
我需要一些这样的程序(例如):
1、锁定指定的学生实体,
2、检查类实体的状态,如果状态为1,则继续,否则,尝试锁定该类实体,直到获得该类的锁
3、查看status的状态(可能因为分布式环境被其他服务器的其他线程修改了),如果还是不为1,那就做点什么,把status修改为1,
4、解锁这个类实体
5、做其他事情(仍然锁定当前学生实体)
我通过以下代码段获得锁定:
Map<String,Object> map = new HashMap<String, Object>();
map.put("javax.persistence.lock.timeout", 0);
return this.getEntityManager().find( cls, id, LockModeType.PESSIMISTIC_WRITE,map);
最佳答案
您必须将锁定模式设置为无
em.lock(myEntity, LockModeType.NONE);
关于jpa - 如何在JPA下解锁一个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16975764/
我是一名优秀的程序员,十分优秀!