我想知道如何創建一個與其所有關聯的持久對象的深層副本。 讓我說我有以下模型。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的內存,它處理休眠延遲加載(你必須配置它) –