我想知道如何创建一个与其所有关联的持久对象的深层副本。 让我说我有以下模型。Hibernate实体的深度克隆
class Document {
String title;
String content;
Person owner;
Set<Citation> citations;
}
class Person {
String name;
Set<Document> documents;
}
class Citation {
String title;
Date date;
Set<Document> documents;
}
我在其中一个用户可能想从一个人抢一个特定文档的副本,使文档他/她再后来,他/她可以改变它的内容和名称的情况。 在这种情况下,我可以想出一种方法来实现创建该文档的深层副本(及其关联)的那种场景。
或者,如果有人知道任何其他可能的方式来做这样的事情,而不做大量的数据副本,因为我知道这可能是坏的应用程序性能。
我也在想可能就像一个属性originalDocument
但这样,我就无法知道(或者协会)已更改其属性来创建的原始文档的参考。
这一个问题可能是,它不能处理延迟加载集合和版本属性。恕我直言,更好的办法是在每个班级自己写深层复制方法。 –
无法处理懒惰字段,无法初始化新克隆对象中的延迟收集。 –
你可以使用杰克逊序列化在JSON的内存,它处理休眠延迟加载(你必须配置它) –