short term read lock / long term write lock
Optimistic Locking: version column
Pessimistic Locking: create a transaction to obtain long term lock
Lock Modes:
OPTIMISTIC: Obtain an optimistic read lock for all entities with version attributes.
OPTIMISTIC_FORCE_INCREMENT: Obtain an optimistic read lock for all entities with version attributes, andincrement the version attribute value.
READ: OPTIMISTIC.
WRITE: OPTIMISTIC_FORCE_INCREMENT.
PESSIMISTIC_READ: immediately obtain a long-term read lock on the data toprevent the data being modified or deleted. Other transactions may read the data while the lock is maintained, but not modify or delete the data.
PESSIMISTIC_WRITE: immediately obtain a long-term write lock on the data toprevent the data being read, modified ordeleted.
PESSIMISTIC_FORCE_INCREMENT: immediately obtain a long-term lock on the data toprevent the data being modified or deleted, and increment the version attribute value.
NONE: no additional locking.
Question:
How to choose which mode to use????
参考资料:
https://docs.oracle.com/javaee/7/tutorial/doc/persistence-locking001.htm#GKJHZ
https://blogs.oracle.com/carolmcdonald/entry/jpa_2_0_concurrency_and
本文探讨了J2EE持久层中控制实体数据并发访问的两种锁定方式:乐观锁和悲观锁。乐观锁通过版本字段实现,而悲观锁则通过开启事务获取长期锁。不同锁模式如OPTIMISTIC、OPTIMISTIC_FORCE_INCREMENT、READ、WRITE、PESSIMISTIC_READ、PESSIMISTIC_WRITE和PESSIMISTIC_FORCE_INCREMENT分别适用于不同场景。选择合适的模式需要根据应用需求来平衡读写冲突和性能。
59

被折叠的 条评论
为什么被折叠?



