当前位置: 首页 > 面试题库 >

删除的实体传递给持久异常

佘修为
2023-03-14
问题内容

我有这种实体:

文件| n ..至..1 | DocumentType | 1 ..至.. n | PropertyType | 1 ..至.. n | 文件属性

我只是尝试删除一个文档,例如:entityManager.remove(document);

但触发错误:

16:45:51,499错误[[Seam Resource Servlet]] Servlet的Servlet.service()Seam
Resource
Servlet引发了异常html" target="_blank">javax.persistence.EntityNotFoundException:已删除的实体传递给持久性:[up.docstore.PropertyType#]

问题似乎出在这里:

@OneToMany(mappedBy = "documentType", cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
@ForeignKey(name = "FK_DOCUMENT_TYPE__PROPERTY_TYPE")
@Sort(type = SortType.NATURAL)
private SortedSet<PropertyType> propertyTypes = new TreeSet<PropertyType>();

如果我删除CascadeType.PERSIST,那么一切正常。但是我在那里需要它,而且我也急切需要它。

有人知道其他解决方案吗?

编辑 :删除了DELETE_ORPHAN级联,但仍然是同样的问题。


问题答案:

解:

  • @ManyToOne关系中有一个CascadeType.REMOVE!删除了。

为什么要这样解决?

  • 如果要删除一个孩子,则一定不要删除其父对象,因为可能还有其他与此孩子相关的孩子。


 类似资料:
  • 我有ContactEntity(父)和PhoneNumberComponent(子)关系。当我试图成为一名管理者时。删除孩子我得到下面的例外。 此外,我注意到,如果我删除级联类型。保持或更改类型。渴望在AbstractContactEntity中的电话号码映射中偷懒,我的JUnit通过了。 有人能告诉我我错过了什么吗? 使用:hibernate、hsqldb 您在我的JUnit中看到的最后em.f

  • 问题内容: 我正在创建一个简单的应用程序,只需使用将一行插入到表中(如果表不存在,则创建它)。 我为它的一个可运行示例附加了一些代码。 这是我得到的异常和stacktrace: 这是我的代码: 主班: 和Person类: 这是我的persistence.xml文件 -----------------------编辑-------------------------- – 我只是将提供程序更改为Ec

  • 问题内容: 我已经成功用hibernate写了我的第一个主要的孩子例子。几天后,我再次使用它并升级了一些库。不知道我做了什么,但是我再也无法使它运行了。有人可以帮助我找出返回以下错误消息的代码中的错误吗: hibernate映射: 编辑: InvoiceManager.java 发票.java InvoiceItem.java 编辑: 从客户端发送的JSON对象: 编辑: 一些详细信息: 我试图通

  • 这个网站上没有一个类似的问题能够解决我的问题。 错误:org.hibernate.persistentobjectexception:传递给persist:healthcheckapi.model.checks的分离实体 示例JSON健康对象: 请注意,这两个对象的ID都是自动生成的,我认为这是问题的一部分。

  • 问题内容: 结合使用JPA和Hibernate,运行以下代码时出现异常。第一次运行它时,一切正常,数据已插入数据库中。第二次,当应更新数据时,它失败: boutiqueDao.persist()只需调用EntityManager.persist()方法。 这是我的精品班: 最后,我的堆栈跟踪: 我正在Tomcat 7.0.32服务器上运行Java 7.0.11。 任何的想法? 问题答案: 用于全新

  • 我用的是JPA。 在数据库中,有建筑表和房间表。它们有一个OneTo多连接。 我可以将数据添加到建筑中,但当我尝试将数据添加到房间中时,会出现错误: 我的建筑模型: 我的房间模型: 我的主应用。在这里,我获取建筑对象并将其传递到房间: 请帮忙。