java - Hibernate JPA,在同一事务中删除和添加

标签 java mysql hibernate jpa

我已经有一段时间没有使用 Hibernate 了,现在又开始使用它了。我正在使用 Hibernate JPA。

编辑问题

如何在同一事务中删除和添加对象?我有一个请求在 Controller 中映射到到达 dao 层的服务层。我想删除一个对象,制作该对象的副本,然后重新添加该对象,但我认为持久性上下文正在刷新,因此我可以完成删除,但随后在尝试时出现分离实体异常在 Controller 层重新添加对象。这可能是一个新手错误...帮助?!

  • 用户<- 保留
    • 关联<- 删除
    • 关联<- 删除
    • 关联<- 删除
    • ...
    • 关联<- 删除

原始问题

我正在尝试创建一个函数来删除所有具有 MainRecord 外键的记录。目前,所有具有 MainRecord 外键的表都设置为级联删除,因此如果我删除 MainRecord,它会自动删除所有内容。

我想要的状态是删除除主记录之外的所有记录,这样就好像 MainRecord 刚刚插入到系统中,在此之后与它建立的任何关联都将被保存。虽然有很多表使用 MainRecord,但我不想编写自定义查询来从每个表中删除记录,所以我想删除 MainRecord,创建一个副本,然后将其重新添加到数据库。

虽然我觉得应该有一种方法可以在不删除 MainRecord 的情况下执行此操作。

有更好的方法吗?

最佳答案

这可能在一定程度上是我将对象传送到后端的方式;可能是在我完成两个事务之前连接正在刷新;我仍然不确定我是否理解确切的原因,但我想出了一种方法让它按照我需要的方式工作。

我最终依靠客户端调用删除,然后在删除调用完成后调用添加,这很有效。我怀疑它是否理想...所以我仍然对其他解决方案持开放态度,但它确实有效...

关于java - Hibernate JPA,在同一事务中删除和添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25211094/

相关文章:

java - 加载新 Activity 时应用程序崩溃

mysql - 生成的sql案例

mysql - MongoDB 加载日常数据(还是坚持使用 mysql?)

Spring中的Java NoSuchMethodException(当我创建了一个构造函数时)

java - 使用 Hibernate 无法持久化一对多层次结构对象结构

java - Soap 服务在本地工作,但在另一台服务器上引发 ClassCastException

java - 如何通过传递新线程作为参数来执行执行器服务?

mysql - SQL返回每组单行

mysql - Hibernate,Spring Data,在子表上插入父表的id

java - SCA相对于Spring的优势?