我已经有一段时间没有使用 Hibernate 了,现在又开始使用它了。我正在使用 Hibernate JPA。
编辑问题
如何在同一事务中删除和添加对象?我有一个请求在 Controller 中映射到到达 dao 层的服务层。我想删除一个对象,制作该对象的副本,然后重新添加该对象,但我认为持久性上下文正在刷新,因此我可以完成删除,但随后在尝试时出现分离实体异常在 Controller 层重新添加对象。这可能是一个新手错误...帮助?!
- 用户<- 保留
- 关联<- 删除
- 关联<- 删除
- 关联<- 删除
- ...
- 关联<- 删除
原始问题
我正在尝试创建一个函数来删除所有具有 MainRecord 外键的记录。目前,所有具有 MainRecord 外键的表都设置为级联删除,因此如果我删除 MainRecord,它会自动删除所有内容。
我想要的状态是删除除主记录之外的所有记录,这样就好像 MainRecord 刚刚插入到系统中,在此之后与它建立的任何关联都将被保存。虽然有很多表使用 MainRecord,但我不想编写自定义查询来从每个表中删除记录,所以我想删除 MainRecord,创建一个副本,然后将其重新添加到数据库。
虽然我觉得应该有一种方法可以在不删除 MainRecord 的情况下执行此操作。
有更好的方法吗?
最佳答案
这可能在一定程度上是我将对象传送到后端的方式;可能是在我完成两个事务之前连接正在刷新;我仍然不确定我是否理解确切的原因,但我想出了一种方法让它按照我需要的方式工作。
我最终依靠客户端调用删除,然后在删除调用完成后调用添加,这很有效。我怀疑它是否理想...所以我仍然对其他解决方案持开放态度,但它确实有效...
关于java - Hibernate JPA,在同一事务中删除和添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25211094/