【发布时间】:2021-04-20 12:31:54
【问题描述】:
AFAIK @Modifying 在@Query 注释中指定的 INSERT/UPDATE/DELETE 查询的情况下负责持久性上下文清理。
但是纯@Modifying 有什么用呢?根据this post,看来你应该总是写@Modifying(clearAutomatically=true, flushAutomatically=true)。
文档说(link):
由于在执行修改查询后 EntityManager 可能包含过时的实体,我们不会自动清除它 ...因为这有效地删除了 EntityManager 中所有未刷新的更改 p>
所以默认情况下@Modifying 不清理(和do not flush)。那我为什么要把它添加到我的@Query 方法中呢?
【问题讨论】:
标签: java spring spring-data-jpa spring-annotations