这是我的数据结构。
@Entity
public class JobEntity {
@Id
private Long id;
private String name;
@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}, mappedBy = "parentJob")
private List<JobEntity> subJobs;
@ManyToOne
@JoinColumn(name = "parent_job")
private JobEntity parentJob;
}
因此,作业实体具有树数据结构,如果我想使用JPA添加如下所示的悲观锁:
Map<String, Object> properties = new HashMap<>();
map.put("javax.persistence.lock.scope", PessimisticLockScope.EXTENDED);
entityManager.find(JobEntity.class, 1L,LockModeType.PESSIMISTIC_WRITE, properties);
悲观锁是否会对树数据结构中所有引用的子行起作用? 还是只是ID为“ 1L”的行?还是只是直接从“ 1L”中引用的行?
答案 0 :(得分:0)
它应该可以工作,但是请注意,如果您使用的是Hibernate,那么不幸的是它还不受支持
JPA标准所指定的javax.persistence.lock.scope尚不支持。