Springboot+jpa,hibernate删除语句执行不成功,只执行了查询语句

问题描述:

如图所示:删除语句,hibernate只打印了查询语句。
Springboot+jpa,hibernate删除语句执行不成功,只执行了查询语句


原因分析:

这是什么原因呢,据了解,hibernate 执行删除语句的时候,会先执行查询语句,确认是否有删除的内容时,才会执行删除语句,所以说,这应该是查询语句出了问题,导致查询不成功,让hibernate无法执行删除语句


解决方案:

通过调试,我发现原来是关联惹出的毛病,因为有主外键,双向一对多关联,设置了立即加载的加载策略,导致产生了踢皮球的现象。

如图所示:
Springboot+jpa,hibernate删除语句执行不成功,只执行了查询语句
所以把加载策略改成 fetch = FetchType.LAZY,延迟加载。这种现象就避免了。


以上纯属个人见解,若有误,请博友斧正。