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

时间:2014-08-08 19:41:04

标签: java mysql hibernate jpa

自从我使用Hibernate之后已经有一段时间了,而且刚刚再次使用它。我正在使用Hibernate JPA。

已编辑的问题

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

  • 用户< - 保留
    • 协会< - 删除
    • 协会< - 删除
    • 协会< - 删除
    • ...
    • 协会< - 删除

原始问题

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

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

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

有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

部分原因可能是我将物体送到了后端;在完成两笔交易之前,可能是连接正在刷新;我仍然不确定我是否明白这个原因,但我找到了一种让它以我需要的方式工作的方法。

我最终依靠客户端拨打删除电话,然后在完成删除调用后拨打电话进行添加,这样就行了。我怀疑这是理想的......所以我仍然愿意接受替代解决方案,但它有效......