当尝试通过JPA持久化多个对象时,出现了pesimistlockexception。 这是我的代码供参考
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public Boolean changeDplListMappingByCustomWatchList(List<Integer> dplIds, Integer customWatchListId,
ServiceRequestor customServiceRequestor) {
for(Integer dplId : dplIds) {
if(dplId != null) {
CustomWatchListDplMapping customWatchListDplMapping = new CustomWatchListDplMapping();
customWatchListDplMapping.setDplId(dplId);
customWatchListDplMapping.setWatchListId(customWatchListId);
this.create(customWatchListDplMapping);
}
}
}
catch(Exception e) {
LOG.error("Exception occured while changing dpl mapping by custom watchList id", e);
}
return true;
}
public void create(Model entity) {
manager.persist(entity);
manager.joinTransaction();
}
在第一个实体遍历第二个实体之后,它将引发异常。如果只保存一个实体,那么它会很好用,但是对于多个实体模型,它将引发此异常。
答案 0 :(得分:0)
默认情况下,悲观锁为1秒钟,因此请在属性文件中进行更改,这将有助于您解锁并可以保存到数据库中