您已经在评论中看到了片段,但让我将其汇总为一个答案:
我认为这是因为我在执行逻辑时更改了实体中的某些数据
这种解释是正确的。
如果您通过JPA加载实体,则该实体将附加到会话中,一旦关闭会话/提交事务,对它的所有更改都会被跟踪并写入数据库。
为了避免这种情况,您需要从会话中删除实体。您可以通过
将实体与持久性上下文分离:https : //docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html#detach-java.lang.Object-
在进行 *** 作之前,请关闭EntityManager /事务。这基本上意味着您对最外部方法之外的实体进行了注释
@Transactional
请注意,在这两种情况下,延迟加载都不再起作用,因此,在分离实体之前,必须确保已加载了所需的所有内容。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)