PersistentObjectException:由 JPA 和 Hibernate 传递给持久化的分离实体

2023-12-15

我有一个 JPA 持久对象模型,其中包含多对一关系:Account有很多Transactions. A Transaction有一个Account.

这是代码片段:

@Entity
public class Transaction {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @ManyToOne(cascade = {CascadeType.ALL},fetch= FetchType.EAGER)
    private Account fromAccount;
....

@Entity
public class Account {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @OneToMany(cascade = {CascadeType.ALL},fetch= FetchType.EAGER, mappedBy = "fromAccount")
    private Set<Transaction> transactions;

我能够创建一个Account对象,向其添加事务,并持久化Account正确地反对。但是,当我创建交易时,使用现有的已保留帐户,并坚持交易,我得到一个例外:

导致:org.hibernate.PersistentObjectException:传递给持久化的分离实体:com.paulsanwald.Account 在 org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:141)

所以,我能够坚持Account包含交易,但不包含具有Account。我以为这是因为Account可能没有附加,但这段代码仍然给了我同样的异常:

if (account.getId()!=null) {
    account = entityManager.merge(account);
}
Transaction transaction = new Transaction(account,"other stuff");
 // the below fails with a "detached entity" message. why?
entityManager.persist(transaction);

如何正确保存Transaction,与已经持续存在的Account object?


解决办法很简单,只需使用CascadeType.MERGE代替CascadeType.PERSIST or CascadeType.ALL.

我也遇到过同样的问题CascadeType.MERGE对我有用。

我希望你能排序。

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

PersistentObjectException:由 JPA 和 Hibernate 传递给持久化的分离实体 的相关文章

  • 添加@Named时@SessionScoped不起作用

    考虑以下支持 bean import javax faces bean ManagedBean import javax faces bean SessionScoped ManagedBean SessionScoped public c
  • setSize() 不起作用?

    我有一个程序 需要两个按钮 一个是常规按钮 另一个具有根据鼠标悬停而变化的图片 目前 由于图片很大 JButton自定义也很大 我可以更改自定义的大小并保持图像 和翻转图像 成比例吗 我尝试过 setSize 但它没有任何作用 对于任何反馈
  • spring-data-neo4j 基本一对多关系不持久

    EDIT 示例项目可在github https github com troig neo4jCustomRepository 我在后端项目中使用 Neo4J Rest 图形数据库 托管在 grapheneDb 中 和 Spring Data
  • Spring JSON序列化、Gson反序列化

    我目前在某些内部对象的反序列化方面遇到问题 在春天 我在使用输出之前初始化所有对象 ResponseBody 例如 这是一个响应 id 1 location id 1 extra location data id 2 location 1
  • Java中单击和双击的区别

    我搜索论坛并看到以下代码 public void mouseClicked MouseEvent e if e getClickCount 2 System out println and it s a double click wasDo
  • 如何将 java ArrayList 转换为等效的 double[] [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Java 中从 List 转换为 double https stackoverflow com questions 6018267 how to cast from listdouble to
  • 传输级别信息与 SOAP 消息命名空间 URI 不匹配

    我收到错误 Transport level information does not match with SOAP Message namespace URI 要求您提供详细信息以解决问题 我在客户端设置了以下内容 HttpTranspo
  • 将 Flash 文件上传与 JSF 集成

    我看到我们可以通过flash文件上传来上传多个文件 喜欢SWF上传 http code google com p swfupload or YUI上传器 http yuilibrary com yui docs uploader 是否可以将
  • 在 Spring Boot 异常处理期间保留自定义 MDC 属性

    简短版本 有足够的细节 如何保留添加在MDC中的属性doFilter 的方法javax servlet Filter执行 public void doFilter ServletRequest request ServletResponse
  • 更改 WireMock __files 目录

    来自docs http wiremock org docs stubbing 要从文件中读取正文内容 请将文件放在 files 下 目录 默认情况下 这应该位于 src test resources 下 从 JUnit 规则运行时 当独立运
  • 无法为对象堆保留足够的空间

    每次尝试运行该程序时 我都会重复出现以下异常 VM初始化期间发生错误 无法为对象堆保留足够的空间 无法创建Java虚拟机 我尝试增加虚拟内存 页面大小 和 RAM 大小 但无济于事 我怎样才能消除这个错误 运行 JVM XX MaxHeap
  • 调整 Java 类以提高 CPU 缓存友好性

    在设计java类时 对于实现CPU缓存友好性有哪些建议 到目前为止我学到的是应该尽可能多地使用 POD 即 int 而不是整数 这样 在分配包含对象时 数据将被连续分配 例如 class Local private int data0 pr
  • 从 API Explorer 调用 API 方法时不允许使用范围

    我在 Google App Engine 中有一个奇怪的行为 我正在使用 Eclipse 和 Java 进行开发 特别是使用 Google Cloud Endpoints 我使用以下设置创建了一个示例 API 实际上 我正在使用许多其他示波
  • 了解 Etc/GMT 时区

    Apple 在从 App Store 返回自动续订订阅收据时使用 Etc GMT 时区的理由是什么 Etc GMT 时区到底是什么 Java SDK 能理解这个时区吗 或者我是否必须使用其他第三方库 例如乔达时间 http www joda
  • CTRL-C 在 Python 中的行为有所不同

    I ve recently started learning Python long time Java programmer here and currently in the process of writing some simple
  • Java编译错误:包不存在

    在我的工作区 wsPrivate 中 我有 3 个 gradle 项目 刽子手 像素视图 Reports PixelView 和 Reports 项目编译良好 然而 Hangman 使用这两个项目 并且有些在编译时找不到包 请参阅以下错误
  • 尝试模拟静态时出现 NoClassDefFoundError 或 NoSuchMethodError (不兼容的依赖项)

    When a class with static method is mocked an exception been thrown The version 2 0 0 of PowerMock displays NoClassDefFou
  • 部署到 Glassfish 4.1 时 URL 模式无效

    如果用户已经通过身份验证 我有一个网络过滤器可以从登录和索引页面重定向 最初我有一个无效的 URL 模式 我修复了无效模式并尝试重新部署以接收以下内容 java lang IllegalArgumentException Invalid U
  • 需要使用自定义类而不是在 Web 服务中生成(通过 wsimport)

    您能帮忙解决以下问题吗 当生成 WS 客户端代码 使用 wsimport ant 任务 时 所有类都会在与 Web 服务相同的包 例如 helloservice endpoint 中自动生成 例如如果我的网络服务有方法 公共节点 getNo
  • 有没有办法让 SonarQube 只警告不完整的 Switch 语句?

    使用 Java SonarQube 抱怨枚举值上的 switch 语句没有default case 给出的推理是 最终默认条款的要求是防御性编程 该条款应采取适当的行动 或包含 关于为什么不采取行动的适当评论 当开关盖上时 枚举的所有当前值

随机推荐

  • 在 EF 4.1 代码中,UnitOfWork 和 GenericRepository 模式是否多余?

    想知道我是否需要使用 Genericrepository 模式和 UnitOfWork 来模拟存储库 我正在使用 MOQ 现在它是多余的吗 因为我注意到 EF 4 1 有 IDBSet 我还没有弄清楚如何编写使用 IDBSet 的通用内容
  • 使用 MVVM 实现使用 IDataErrorInfo 验证数据时出现异常

    我正在尝试使用 IDataErrorInfo 验证 MVVM 应用程序中的数据 但遇到了一些问题 当我将 TextBox 设置为无效值时 验证工作正常 但是当我将 TextBox 的值设置为有效值后 我收到此异常 A first chanc
  • Java 有编码标准吗?

    我可以开发一个应用程序 项目 但这不符合正确的编码标准 它需要大量的内存 并且其他人不容易理解它 编码的通用标准是什么 我有一个问题 例如如何命名变量方法以及打包类的最佳方法是什么 像那样 为此 是否有任何教程或示例请分享 提前致谢 您需要
  • 如何统计datagridview列中的特定值

    In a DataGridView我需要计算一列有多少个重复值 这是我的数据网格视图 例如 我想计算 RisFin 列中有多少个 X 并将结果放入文本框中 你可以这样计算你需要的东西 var count this dataGridView1
  • Js中图像到ArrayBuffer

    您需要获取 jpg 并转换为 arrayBuffer 有人知道如何做到这一点吗 我尝试使用下面的函数 但对于 Microsoft API 没有成功 document querySelector inputImage addEventList
  • Android:将RawFile复制到Sdcard(视频mp4)

    这段代码有什么问题 我的项目中有一个 Raw 文件 mp4 视频文件 当我这样做时 然后我从 SD 卡检索文件文件不完全相同 因此无法加载视频 您还有其他方法自动将原始文件复制到 SD 卡吗 Thanks String FICHIER BL
  • Angular 6 中 mat-datepicker 的 UTC 日期

    我用过mat datepicker对于我的 Angular 6 项目 但在日期选择器中显示当前时区日期 相反 我需要显示当前的 UTC 日期 这是我的代码 ts file var nowDate new Date this startdat
  • 为什么 fprintf 和 fscanf 不能与管道一起使用

    我已经编写了创建管道的程序 将一个数字写入管道 从管道中读取它并将其打印到标准输出 但似乎 fscanf 看到空的管道流 尽管我做了 fflush 为什么 fprintf 不打印任何内容 int main int fd 2 pipe fd
  • Python 中的 GUI 应用程序用于快速更新屏幕图像

    我提前为我的菜鸟行为道歉 我刚刚开始编程 你能为我指明 GUI 框架的正确路径吗 看着GUI 框架列表考虑到我普遍缺乏专业知识 这是相当令人畏惧的 Summary 我正在尝试用 python 编写一个 GUI 它可以使用 numpy 以数学
  • axios - 如何处理大整数

    这是我的要求 axios get url then res gt console log res data 输出是 value 156144277082605255 但应该是 value 156144277082605250 在这种情况下如
  • jQuery ui.draggable 不调用自定义函数

    我有一个 JavaScript 函数 showAlert 有一个可拖动的图像 拖动停止后 我们需要显示警报 它不起作用我们如何纠正它
  • 来自 GDB 的消息“启动期间程序因信号 SIGKILL 终止”

    我在 AIX 上调试使用 GNU 工具构建的 C 程序时遇到问题 当程序在调试器之外运行时 bash 4 3 cryptestcwd v Segmentation fault core dumped 当程序在GDB下运行时 调试器打印消息D
  • 像缓冲区一样围绕折线创建多边形

    我环顾四周 找到了如何获取折线并在其周围创建缓冲区的示例 这样我最终得到了一个多边形 到目前为止 我发现我需要 Minkowski Sums 来做到这一点 但我无法理解原始算法并将其转换为代码 我更喜欢 C 中的示例或算法的演练 您可以使用
  • 内容在具有固定页眉/页脚的移动页面上滚动

    您好 我正在构建一个移动网页 其中我的内容只会滚动 页脚和页眉位置为 固定 我可以制作内容 使其不会在页眉或页脚下方滚动 以便它只在自己的位置滚动分区 我想这样做的原因是我的页眉和页脚将有一些不透明度 如果内容滚动到下面 它看起来就不太好
  • UIAlertView 开始显示,屏幕变暗,但直到为时已晚才弹出!

    我有一个按钮 按下该按钮会调用从一系列 URL 加载信息 加载时间大约 5 秒 在实际拨打这些电话之前 我想添加一个 正在加载 警报 当我使用 UIAlertView 时 屏幕会变暗 就像它即将弹出一样 但直到数据加载后才会出现 太晚了 我
  • System.out.println 和字符串参数

    当我写的时候 System out println Give grade args 0 它给出了错误 PrintStream 类型中的方法 println String 不适用于参数 String String 为什么会这样呢 但是 当我尝
  • 在SQL中获取日期的周数

    有没有一种方法可以使用独立于数据库的 SQL 来获取日期的周数 例如 要获取我使用的日期的月份 SELECT EXTRACT MONTH FROM DATE 但 EXTRACT 函数不知道 SQL92 中的周 请注意我想要一个解决方案独立于
  • JavaScript 从字符串值构建嵌套数组

    从我的数据源中我得到的值如下 USA Arizona USA Florida UK England Northamptonshire UK England Derbyshire UK Wales Powys Switzerland Luce
  • Android Studio 模拟器在任务栏中最小化时卡住

    我在 Ubuntu 16 04 上使用 Android Studio AVD 模拟器启动正常 我可以在上面安装 apk 但是 如果我更改为不同的工作区 最小化模拟器 甚至单击另一个窗口 将模拟器置于背景中 它似乎会最小化 仅在任务栏中可见
  • PersistentObjectException:由 JPA 和 Hibernate 传递给持久化的分离实体

    我有一个 JPA 持久对象模型 其中包含多对一关系 Account有很多Transactions A Transaction有一个Account 这是代码片段 Entity public class Transaction Id Gener