hibernate - JPA实体的深度复制

标签 hibernate jpa

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

7年前关闭。




Improve this question




我必须做一个实体的深拷贝。基本上,我必须复制一个域对象,因此我们需要尽快对实体及其子级和子级进行深度复制。比我需要将结构中每个人的 id 设置为空,以便它们作为新实体插入。已经有一些讨论 herelink text .基本思想是我们自己写一个深拷贝逻辑。我只是想知道是否还有其他更好的方法,比如在数据库级别本身做一些程序。

我使用 hibernate 作为 JPA 提供者,因此 hibernate 特定的解决方案也将起作用。

最佳答案

在 Java 中没有简单的方法可以深度克隆对象。因此 Hibernate 对此没有特别的支持。

也就是说:您可以从深拷贝代码访问 Hibernate 注释并使用它来确定要做什么——您甚至可以添加自己的注释(以停止深拷贝代码克隆静态主数据)。

因此应该可以编写一个以这种方式工作并使用 @Id 的实现。注释和你们中的一些编码规则来实现这一点。

使用存储过程也可能有效,具体取决于您使用的数据库以及您在 SQL 中的适应度。但是生成的代码将难以维护、测试和理解。因此我建议反对。

关于hibernate - JPA实体的深度复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4365896/

相关文章:

java - JPA:将数据库列映射到实体中的两个字段

java - JPA 条件 - 使用 where 子句获取

java - hibernate中过滤器和标准之间的区别

java - 为什么 Hibernate 5 序列生成器使用默认的 hibernate.seq 而不是我的序列?

java - 错误: org. hibernate.hql.ast.QuerySyntaxError:意外的 token

java - 使用 Spring Data JPA 将 Joda Money 的总和分成两列

java - 如何使用 hibernate 一般测试数据库连接

xml - hibernate 使用注解或者使用 hibernate 配置文件

java - 使用嵌入式 id 的 Hibernate 条件查询提取

java - SQL 错误 : 17008, SQLState:空