gpt4 book ai didi

java - Hibernate实体的深度克隆

转载 作者:搜寻专家 更新时间:2023-10-30 21:10:14 24 4
gpt4 key购买 nike

我想知道如何创建持久对象及其所有关联的深拷贝。假设我有以下模型。

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 但那样我将无法知道哪个属性(或者可能是关联)改变了。

最佳答案

执行深拷贝:

public static <T> T clone(Class<T> clazz, T dtls) { 
T clonedObject = (T) SerializationHelper.clone((Serializable) dtls);
return clonedObject;
}

此实用程序方法将提供实体的深拷贝,您可以对克隆的对象执行您想要的操作。

关于java - Hibernate实体的深度克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17629530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com