Я хотел бы сделать глубокую копию объекта в JPA. Я нашел интересную дискуссию здесь: http://forums.java.net/jive/thread.jspa?messageID=253092&tstart=0Deep Copy in JPA
Было похоже, что предлагаемое решение состояло в том, чтобы установить все @ Id на ноль. Вот мой базовый код:
//Start a JPA session.
EntityManager em= emf.createEntityManager();
em.getTransaction().begin();
//Get the object I want to copy.
MyClass myObject=em.find(MyClass.class,id);
//Use reflection to find @Id's and set them to zero for all @OneToMany and @OneToOne relations.
//TODO: write the ugly recursive code to do this.
//Hoping this will create a deep copy.
em.merge(myObject);
//Close the session.
em.getTransaction().commit();
em.close();
Это хорошая стратегия? Может кто-нибудь есть этот код TODO уже написано, что они могут делиться ???
Спасибо!
Ссылка не работает. Можете ли вы его обновить. – Kayser
Вы действительно хотите сделать глубокую копию? Это может привести к дублированию всей базы данных. Я предпочел бы использовать копирование - утомительный, но мог бы спасти меня головной болью или, что еще хуже, сбой сервера в производстве. –