关闭。这个问题需要更多focused .它目前不接受答案。
想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .
7年前关闭。
Improve this question
我必须做一个实体的深拷贝。基本上,我必须复制一个域对象,因此我们需要尽快对实体及其子级和子级进行深度复制。比我需要将结构中每个人的 id 设置为空,以便它们作为新实体插入。已经有一些讨论 here和 link text .基本思想是我们自己写一个深拷贝逻辑。我只是想知道是否还有其他更好的方法,比如在数据库级别本身做一些程序。
我使用 hibernate 作为 JPA 提供者,因此 hibernate 特定的解决方案也将起作用。
最佳答案
在 Java 中没有简单的方法可以深度克隆对象。因此 Hibernate 对此没有特别的支持。
也就是说:您可以从深拷贝代码访问 Hibernate 注释并使用它来确定要做什么——您甚至可以添加自己的注释(以停止深拷贝代码克隆静态主数据)。
因此应该可以编写一个以这种方式工作并使用 @Id
的实现。注释和你们中的一些编码规则来实现这一点。
使用存储过程也可能有效,具体取决于您使用的数据库以及您在 SQL 中的适应度。但是生成的代码将难以维护、测试和理解。因此我建议反对。
关于hibernate - JPA实体的深度复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365896/