-->
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: "save the transient instance before flushing"...
PostPosted: Sun Apr 30, 2006 12:49 pm 
Newbie

Joined: Tue Apr 18, 2006 12:33 pm
Posts: 12
Hallo zusammen,

ich sitze hier jetzt schon seit einer Stunde vor einem Problem, bei dem ich einfach nicht weiterkomme... Auch meine Recherchen im I-Net haben nichts Hilfreiches erbracht bzw. meine Versuche das Problem zu lösen waren alle ergebnislos. Vielleicht weiß hier ja jemand Rat.

Das Problem ist, dass ich folgende Meldung von Hibernate in den Logs finde und daraufhin eine Exception meines Web-Frameworks (Tapestry) erhalte:

Code:
18:34:34,824  WARN RequestExceptionReporter:44 - Unable to process client request: object references an unsaved transient instance - save the transient instance before flushing: de.plattform.domain.Setting
org.apache.hivemind.ApplicationRuntimeException: object references an unsaved transient instance - save the transient instance before flushing: de.plattform.domain.Setting [context:/WEB-INF/pages/EditSettings.page, line 6, column 21]
        at org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:461)
        at org.apache.tapestry.form.Form.trigger(Form.java:338)
        at org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:146)
        at org.apache.tapestry.engine.DirectService.service(DirectService.java:132)


Nun findet man viel, wie/warum so ein Fehler auftreten kann, nur wie ich ihn behebe ist mir noch nicht ganz klar.

Vielleicht zunächst mal der Code, der _wahrscheinlich_ für den Fehler verantwortlich ist:
Code:
public void updateSettings(Integer userId, List<Setting> settings)
   {
      Person administrator = _personDao.findById(userId);
      Iterator iterator = settings.iterator();
      Setting setting = null;

      while (iterator.hasNext())
      {
         setting = (Setting) iterator.next();

         if (setting.hashCode() != _settingDao.findById(setting.getId())
               .hashCode())
         {
            setting.setAdministrator(administrator);
            setting
                  .setLastAccess(new Timestamp(System.currentTimeMillis()));

            _settingDao.updateSetting(setting);
         }
      }
   }


Helfen würde es mir zum Beispiel schonmal zu wissen, dass der Code korrekt is/funktionieren sollte oder aber Fehler enthält. Die Klasse Setting is ein persistentes Domain Object...

Wenn ihr nähere Informationen benötigt, dann einfach kurz Bescheid sagen und ich liefere sie nach sofern mir möglich ;)

Ich benutze die aktuelle Version von Hibernate, Tomcat 5.5, Tapestry auf Tapernate-Basis (transaction-per-session im Moment) und die List<Setting> kommt direkt aus der Klasse der EditSettings Seite.

Danke!


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 03, 2006 5:12 pm 
Regular
Regular

Joined: Mon Oct 06, 2003 7:17 am
Posts: 58
Location: Switzerland
Bei der Beziehung von der Setting Klasse zum Administrator hast du "cascade=saveOrUpdate oder save" eingestellt? Wenn nicht, dann musst du zusätzlich den Administrator an die Session hängen. Ansonsten wird er nicht automatisch mit dem setting objekt abgespeichert.

Reto


Top
 Profile  
 
 Post subject:
PostPosted: Fri May 05, 2006 8:55 am 
Newbie

Joined: Tue Apr 18, 2006 12:33 pm
Posts: 12
Reto wrote:
Bei der Beziehung von der Setting Klasse zum Administrator hast du "cascade=saveOrUpdate oder save" eingestellt? Wenn nicht, dann musst du zusätzlich den Administrator an die Session hängen. Ansonsten wird er nicht automatisch mit dem setting objekt abgespeichert.

Reto


Ich habs jetzt anders hinbekommen, war nämlich mit ein Problem in meiner Applikation bzw. dem darunterliegenden Framework...
Danke aber trotzdem für deinen Tipp! :-)


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.