-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: Kopie eines Objektes anlegen
PostPosted: Thu Sep 28, 2006 4:15 am 
Beginner
Beginner

Joined: Thu Aug 31, 2006 7:41 am
Posts: 24
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


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 28, 2006 7:42 pm 
Newbie

Joined: Thu Sep 28, 2006 12:27 pm
Posts: 13
"instance" soll die transiente Kopie darstellen, nehm ich an?
Da fehlt aber irgendwie die Erzeugung oder von wo kommt das Objekt sonst?

Bitte den kompletten Code posten.

Ungeachtet dessen kann ich für deepCopies von Objekten folgendes Projekt wärmstens empfehlen: http://sourceforge.net/projects/beanlib


Top
 Profile  
 
 Post subject:
PostPosted: Mon Oct 09, 2006 3:34 am 
Beginner
Beginner

Joined: Thu Aug 31, 2006 7:41 am
Posts: 24
HSchmidt wrote:
"instance" soll die transiente Kopie darstellen, nehm ich an?
Da fehlt aber irgendwie die Erzeugung oder von wo kommt das Objekt sonst?


Das kommt von hier:
Code:
<jsp:useBean id="instance" scope="session" class="de.zgdv.rostock.ceismedia.hibernate.Media" />


HSchmidt wrote:
Ungeachtet dessen kann ich für deepCopies von Objekten folgendes Projekt wärmstens empfehlen: http://sourceforge.net/projects/beanlib


Schaue ich mir mal an, wobei ich das ganze mittlerweile haendisch geloest habe (also ueber die Sets iterieren und die enthaltenen Objekte in das Set der neuen Instanz uebernehmen).

Andreas


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.