gpt4 book ai didi

java - org.springframework.dao.CannotAcquireLockException

转载 作者:行者123 更新时间:2023-12-02 00:34:58 24 4
gpt4 key购买 nike

我们得到:

org.springframework.dao.CannotAcquireLockException

经常出现在这段代码上:

if(claimBasicInfo.getsFacilityName()==null) {
claimBasicInfo.setsFacilityName("");
}

try {
getHibernateTemplate().saveOrUpdate(claimBasicInfo);
getHibernateTemplate().flush();
getHibernateTemplate().evict(claimBasicInfo);
}

我们发现在执行getHibernateTemplate().flush();时会发生这个锁异常,在saveOrUpdate()之后立即调用flush是一个好习惯吗?

最佳答案

不,在不了解其实际含义的情况下盲目地做事不是一个好习惯。

调用flush()只是将持久化上下文中的更改保存到数据库中。有时您可能需要自己调用它(例如,当数据库逻辑更改数据时),但通常您让事务边界处理刷新。

如果您从问题中的代码中删除 flush() ,您将在事务结束时收到异常(其中隐式发生刷新)。当实际访问数据库时(因为此时锁成为真正的问题),会发生异常,调用 saveOrUpdate 只是“准备”要保存的对象。

关于java - org.springframework.dao.CannotAcquireLockException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57987546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com