gpt4 book ai didi

java - 合并而不是持久化可以防止 "detached entity passed to persist"错误?

转载 作者:行者123 更新时间:2023-11-30 11:44:56 24 4
gpt4 key购买 nike

我知道有很多关于这个著名的 detached entity passed to persist 错误的讨论。我遇到了那个错误。我 well linked我的实体,但这不是问题:我将一个实体链接到一个已经存在的实体。我尝试了 merge() 而不是 persist(),它很好地执行了事务。我查询了那个 merge() 方法,我了解到 herethere要点:它复制传递对象的状态。对。

我的问题是,而不是

em.persist(e); e.anything();

使用它是个坏主意吗

e = em.merge(e); e.anything();

?

如果我很好理解,merge() 返回状态合并到的托管实例,这应该意味着用返回的实体覆盖给定的实体可以访问到持久实体,不是吗?

我在任何地方都没有看到“解决方案”,所以我想问一下。如果这是一个重复的问题,我认错 :)

最佳答案

is it a bad idea to use e = em.merge(e); e.anything();

这是否是个坏主意取决于您的应用程序以及您在合并之前所做的事情以及您在 anything() 中所做的事情。

merge 将在某些情况下修复“分离的实体”错误。在其他情况下,它会在破坏您的应用程序的同时满足实体管理器的要求。

要针对您的具体情况回答问题,您必须问自己:e 来自哪里?它包含什么?它与其他实体有关系吗?如果是这样,这些关系是双向的吗?等等……

关于java - 合并而不是持久化可以防止 "detached entity passed to persist"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10537462/

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