Hi,
ich moechte von einem persistenten Objekt eine Kopie anlegen, also ein neues transientes Objekt das zu Beginn mit denselben Eigenschaften gefuellt ist wie das persitente Objekt.
Bisher mache ich das ungefaehr so
Code:
Integer id = new Integer(request.getParameter("refPicId"));
Media refpic = (Media)hibsession.get(Media.class, id);
Hibernate.initialize(refpic);
Hibernate.initialize(refpic.getAsts());
Hibernate.initialize(refpic.getPersons());
Hibernate.initialize(refpic.getPlaces());
instance.addAsts(refpic.getAsts());
instance.addPersons(refpic.getPersons());
instance.addPlaces(refpic.getPlaces());
Damit kann ich aber das neue transiente Objekt nicht speichern. In einer spaeteren Session bekomme ich beim Aufruf von
Code:
session.saveOrUpdate(instance);
eine NonUniqueObjectException, weil ein Objekt mit demselben Identifier bereits in der Session registriert ist. Das transiente Objekt hat aber id==0 und somit noch gar keine Id, waehrend das persistente Objekt zu dem Zeitpunkt id==13 hat.
Wie also lege ich ein neues transientes Objekt an, dass den Status eines existierenden Objektes uebernimmt?
Andreas