要修改查询,您需要
@Modifying在方法中添加一个。
确保您了解所选方法的副作用:
- 执行操作查询几乎会绕过所有
EntityManager
缓存。因此,后续的findOne(…)
可能/将仍然返回您尝试删除的对象的旧实例,以防EntityManager
它已经加载了它。为避免这种情况,请将clearAutomatically
标志设置为@Modifying
,true
但请注意,这将导致所有待处理的更改被清除。 - 对于基于查询的数据操作 没有 生命周期回调将被触发并 没有 级联将在持久化上下文的水平被触发。这意味着侦听
@PreUpdate
事件的实体侦听器不会收到通知。还有任何级联操作



