Mac*_*ski 7 java hibernate jpa locking transactions
我正在研究JPA文档,遇到以下几行:
锁定实体包含外键的实体关系也将被锁定,但不会锁定所引用实体的状态(除非明确锁定这些实体).实体不包含外键的元素集合和关系(例如映射到连接表的关系或目标实体包含外键的单向一对多关系)默认情况下不会被锁定.
它来自这里(PessimisticLockScope.NORMAL)
我想知道如何解释这些线条.如果PessimisticLockScope设置为,EXTENDED则连接表中的行也会被锁定(但不是相关实体本身),所以在使用NORMAL值时会锁定什么?为了确保实体行(或列,如果继承策略是JOINED或TABLE_PER_CLASS,或者如果有SecondaryTable),但什么意思"实体关系":
锁定的实体包含外键的实体关系也将被锁定
在上下文中PessimisticLockScope.NORMAL?
实体关系映射到数据库FK关联.
该PessimisticLockScope.NORMAL会发出相当积极数据库的独占锁定于:
@ManyToOne和@OneToOne关联的表行(例如,侧面@JoinColumn).但这意味着您无法更改FK信息,这意味着您无法将其设置为null或任何其他不同的值.因此,只有FK列值被锁定而不是其他表关联的FK行.的@OneToMany,@ManyToMany和非所属@OneToOne和@ManyToOne协会都不会被锁定,因为这些协会都只有一个面向对象的等价物,并锁定在数据库级别只发生.有关更多详细信息,请查看此文章.
在PessimisticLockScope.EXTENDED将扩大到@OneToMany和@ManyToMany联想了.但同样,这仅适用于FK列值而不适用于整行.因此,此锁定将阻止向/从@OneToMany/ @ManyToMany关联添加/删除元素.它不会阻止包含的元素更新.为此,您必须锁定每个包含的实体.
| 归档时间: |
|
| 查看次数: |
2072 次 |
| 最近记录: |