首先合并实体时,为什么我会收到传递给合并的已删除实例

2024-03-29

我相信我想要删除的实体是托管实体。但是,无论如何,为什么合并它然后删除它会给我以下错误:

已删除的实例传递给合并

有人在 stackoverflow 上说,如果它是托管实体,则应忽略合并。那么为什么这一点没有被忽视呢?

我希望删除它的方式是这样的:

TrialUser mergedEntity = em.merge(tu);
em.remove(mergedEntity);

但是这个错误,但如果我去掉第一行,它似乎工作正常。但我想要另一种方式,因为这与代码的其余部分一致。

EDIT:

@PersistenceContext(unitName = "UnitName")
protected EntityManager entityManager;

     @Table(name="TRIAL_USER")

     @Id
     private BigDecimal id;

     @ManyToOne(cascade= {CascadeType.ALL }, fetch=FetchType.EAGER)
     @JoinColumn(name="TRIAL_USER_CLASS_ID3")
     private TrialUserElement trialUserElement3;

@ManyToOne(cascade= {CascadeType.ALL }, fetch=FetchType.EAGER)
@JoinColumn(name="TRIAL_USER_CLASS_ID1")
private TrialUserElement trialUserElement1;


@ManyToOne(cascade= {CascadeType.ALL }, fetch=FetchType.EAGER)
@JoinColumn(name="TRIAL_USER_CLASS_ID2")
private TrialUserElement trialUserElement2;

当您在事务中运行某些代码、在方法末尾提交时,可能会出现此错误。 当在带有注释的方法或类中使用 spring 时

@Transactional

发生这种情况是因为您首先删除了对象(没有提交),然后尝试更新它。

此代码将生成异常:

    @Transactional
    myethod(){
      dao.delete(myObject);
      myObject.setProperty("some value");
      dao.save();  
    }

为了避免错误,您不应删除然后保存在同一事务中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

首先合并实体时,为什么我会收到传递给合并的已删除实例 的相关文章

随机推荐

  • Youtube Iframe:未调用 onYouTubePlayerAPIReady()

    我有一个带有 iframe 的页面 它加载 youtube 视频 iframe 的 src 在运行时修改 我基于 Rob W 在该主题的不同答案中提供的代码 然后 当加载 iframe 时 执行以下代码 browser load funct
  • 每行的快速列洗牌 numpy

    我有一个包含行的长度超过 10 000 000 的大型数组 我需要单独洗牌这些行 例如 1 2 3 1 2 3 1 2 3 1 2 3 to 3 1 2 2 1 3 1 3 2 1 2 3 我目前正在使用 map numpy random
  • 在 UITextfield 中放置“清除按钮”

    有没有办法定位清除按钮 我想将其向下移动一点 使其与文本输入处于同一水平 有任何想法吗 我的文本字段已经是处理效果的另一个类的子类 包含 clearButtonRect 函数不起作用 IBDesignable open class Hosh
  • 有人可以解释一下这个 C# lambda 语法吗?

    我最近发现了一个静态方法 声明为 public class Foo public static Func
  • SQL Server 排序规则

    我正在读的书上说 SQL Server 支持两种字符数据类型 常规和 Unicode 常规数据类型包括 CHAR 和 VARCHAR Unicode 数据类型包括 NCHAR 和 NVARCHAR 不同之处在于 常规字符每个字符使用一个字节
  • Sinatra 是多线程的吗?

    Sinatra 是多线程的吗 我在其他地方读到 sinatra 默认情况下是多线程的 这意味着什么 考虑这个例子 get multithread do t1 Thread new puts sleeping for 10 sec sleep
  • 与没有 Ajax 或 jQuery on Rails 的情况类似/不同

    我正在尝试实现一个简单的类似 不同函数 我在这里看到的所有示例似乎都适用于 ajax 或 jquery 我还是一个初学者 我也不完全理解 我只想要一个简单的解决方案 我的想法是 我有书 我有用户 用户可以喜欢书籍 所以我通过 Like 模型
  • Rstudio 和闪亮服务器代理设置

    我已经在我的 ubuntu14 上安装了 RStudio Server v0 98 507 和 Shiny Server v1 1 0 10000 我的 rstudio 代理设置已打开nginx 默认值 location rstudio r
  • Excel UDF 加权 RANDBETWEEN()

    好吧 不是真的RANDBETWEEN 我正在尝试创建一个 UDF 来返回数组中数字的索引 其中数字越大 被选择的可能性就越大 我知道如何将概率分配给工作表中的随机数 即使用MATCH 关于概率的总和 有很多东西可以解释这一点 但我想要一个
  • 如何在 php 上执行 SoapClient

    我是soapclient的新手 我尝试在网上做一些研究 也尝试在soap上编码 但似乎这对我来说仍然不起作用 只是徘徊在这里的任何人都可以指出 也许给我一些例子 我如何实际使用的soapclint从以下Web服务器获取反馈 POST web
  • 如何列出指向 git 中特定提交的所有标签

    我已经看到命令了git describe and git name rev但我还没有设法让他们列出多个标签 示例 我有 sha1 48eb354 并且我知道标签 A 和 B 指向它 所以我想要一个 git 命令git something 4
  • 使用 Facebook Graph API 获取纽约市的餐厅列表

    我想使用 Facebook Graph API 获取位于纽约的所有餐厅页面的列表 我已经下载了 PHP SDK 但现在我遇到了这个问题 我只需要餐厅页面的 ID
  • 将自定义对象从客户端 (Jquery) 发送到服务器 (WCF)

    如何将自定义对象从客户端 jquery 发送到服务器 WCF 服务 传递对象的方式是什么 下面是我的代码 当我在萤火虫中看到时 这就是我得到的 请查看屏幕截图 http img88 imageshack us img88 205 54211
  • 自定义图标标记有时无法在 React-Native 中的 MapBox-GL 中工作

    我正在尝试编辑地图标记 如下图所示 这是我创建标记的代码 const MapBoxComponent gt const markers useState title hello coordinates 108 24065199465605
  • 从 C++ 库调用方法时 WPF 中出现 StackOverFlowException

    我在 WPF 中使用 C 库 它是磁条读取器 写入器的 SDK 当我在 WPF 中调用它的方法之一时 10 秒后我收到 StackOverFlowException 从按钮单击事件调用的方法 DllImport MSR API dll st
  • unique.default(x) unique() 中的 R 错误仅适用于向量

    我创建了一个名为state从内置矩阵state x77有两个连续变量 人口和收入 和两个因子变量 地区和面积 我使用以下方法计算了按地区划分的平均收入tapply by aggregate and ave 查看返回对象的格式 但是调用ave
  • 像在facet_grid中一样在facet_wrap中设置“空间”

    我需要不同宽度的刻面 左图显示了实验的动态范围 右图显示了测试条件 有没有办法通过facet wrap同时获得免费的x和y尺度 在facet grid中这是可能的 但即使使用scale free 也有固定的y比例 facet wrap 允许
  • iPhone:配置文件每 2 个月过期一次?

    是我一个人的问题还是在开发人员门户上创建的配置文件每 2 个月过期一次 为什么这么疯狂 有没有办法创建一个在整个年度订阅期间持续的配置文件 我已经联系过Apple 但他们根本没有回复 苹果疯了吗 是的 配置配置文件的生命周期现在更短了 我不
  • 更改资源(如图标)不会重新编译 .qrc 文件

    我正在使用带有 QT Visual Studio 集成的 Visual Studio 2005 IDE QT版本是4 7 3 我有一个项目 其中在 QT 资源集合文件 qrc 中定义了一些资源 问题是每当我更改 qrc 引用的某些文件的内容
  • 首先合并实体时,为什么我会收到传递给合并的已删除实例

    我相信我想要删除的实体是托管实体 但是 无论如何 为什么合并它然后删除它会给我以下错误 已删除的实例传递给合并 有人在 stackoverflow 上说 如果它是托管实体 则应忽略合并 那么为什么这一点没有被忽视呢 我希望删除它的方式是这样