Мне интересно, как я могу создать глубокую копию сохраняемого объекта со всей его связью. Скажем, у меня есть следующая модель.
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
, но таким образом я не смогу узнать, какой атрибут (или, возможно, ассоциация) был изменен.