spring hibernate lock是否适用于不同机器上的其他线程?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring hibernate lock是否适用于不同机器上的其他线程?相关的知识,希望对你有一定的参考价值。
HibernateTemplate().refresh(obj, LockMode.UPGRADE);
上面的行会阻止所有线程,包括不同机器上的线程继续执行吗?
这个锁什么时候会被释放?
它是在休眠会话结束时吗?
锁定释放后获取锁定并唤醒现有线程的成本是多少?谢谢
答案
Hibernate锁请求被委托给数据库,因此不会发生内存中的Java锁定。
LockMode.Upgrade
是equivalent to PESSIMISTIC_WRITE,意味着在相关的数据库行上采用了独占锁。
当前锁定将阻止其他事务获取此特定行的共享/独占锁,直到当前事务结束(提交或回滚)。
如果其他线程不需要采用此特定数据库行锁定,则不会发生争用。
线程没有被唤醒,就像在Java中发生的那样。等待锁定的数据库进程永远不会进入休眠状态。您也可以配置锁定获取的时间间隔。
以上是关于spring hibernate lock是否适用于不同机器上的其他线程?的主要内容,如果未能解决你的问题,请参考以下文章
GWT 开发模式 + Spring 3.1 + Hibernate 4.0.1 中的异常
Spring Boot 的 Hibernate 字段命名问题(命名策略)
Spring Boot 的 Hibernate 字段命名问题(命名策略)
对于大型项目,Spring Data JPA 与 Hibernate 有何不同?