Are you not using a LoadableDetacheble model? And are you familiar with Hibernate's laizy loading?
Have a great day, Paul Bors > On May 18, 2014, at 6:08 AM, Piratenvisier <hansheinrichbr...@yahoo.de> wrote: > > Am 17.05.2014 23:08, schrieb mscoon: >> I don't understand what these lines are doing. Are you reloading whatever >> is already stored in your modelObject.kunde and setting it again to your >> model object? Why? > all ONETOMANY relationships which are set before I open the form > cause problem with hibernate when I save the Model after I close the Form. > When I set them once more as described below everything is OK. > all ONETOMANY relationships which are set by the Form by DropDownChoices > don't cause any problem. > > >> >> On Thu, May 8, 2014 at 7:50 AM, Piratenvisier >> <hansheinrichbr...@yahoo.de>wrote: >> >>> If I include the folowing lines : >>> >>> if(NachweiseForm.this.getModelObject().getKunde()!=null) { >>> Kunde kunde = kundeManager.get(NachweiseForm.this. >>> getModelObject().getKunde().getId()); >>> NachweiseForm.this.getModelObject().setKunde(kunde); >>> kunde.addNachweis(NachweiseForm.this.getModelObject()); >>> System.err.println("Kunde"); >>> } >>> >>> before the save >>> >>> everything is fine >>> >>> But I hoped to avoid such lines by AbstractEntityModel. >>> >>> My idea was to implant Kunde through the form. >>> >>> But how could you do it only by a Label. >>> >>> Am 05.05.2014 20:40, schrieb mscoon: >>> >>>> Actually what I said below is wrong because this line is after the line >>>> >>>> that throws the exception. But my explanation still holds. Something >>>> before >>>> the line that is throwing the exception is causing an object with a >>>> reference to a new Nachweise >>>> to be saved while the Nachweise is still unsaved. You need to search at >>>> what is happening before the line with the exception, maybe even before >>>> the >>>> page is created. >>>> >>>> >>>> >>>> Now, a wild guess (I may well be wrong) is that the following line: >>>>> nachweiseform.getModelObject().getKunde().addNachweis(nachwe >>>>> iseform.getModelObject()); >>>>> >>>>> may be causing the problem if hibernate tries to save kunde with >>>>> nachweiseform.getModelObject() >>>>> which is a new object with a null id. >>>>> >>>>> You may try to move this line to saveNachweise(). >>>>> >>>>> >>>>> On Mon, May 5, 2014 at 2:54 PM, Yahoo <hansheinrichbr...@yahoo.de> >>>>> wrote: >>>>> >>>>> Am 05.05.2014 11:05, schrieb mscoon: >>>>>> In a previous message you sent the following snippets: >>>>>> >>>>>>> //@XmlTransient >>>>>>> @ManyToOne(cascade = CascadeType.MERGE,fetch=FetchType.LAZY) >>>>>>> @JoinColumn(name="NachKundNr",insertable=false, updatable=false) >>>>>>> public Kunde getKunde(){ >>>>>>> return this.kunde; >>>>>>> } >>>>>>> >>>>>>> recursive Part for Kunde >>>>>>> >>>>>>> >>>>>>> @XmlTransient >>>>>>> @OneToMany(cascade={CascadeType.MERGE},fetch=FetchType.LAZY) >>>>>>> @JoinColumn(name="NachKundNr",insertable=false, updatable=false ) >>>>>>> >>>>>>> when I remove this I get the error : >>>>>> org.hibernate.TransientObjectException: object references an unsaved >>>>>> transient instance - save the transient instance before flushing: >>>>>> braunimmobilien.model.Nachweise >>>>>> at org.hibernate.engine.internal.ForeignKeys. >>>>>> getEntityIdentifierIfNotUnsaved(ForeignKeys.java:249) >>>>>> at org.hibernate.type.EntityType.getIdentifier(EntityType.java: >>>>>> 459) >>>>>> at org.hibernate.type.ManyToOneType.nullSafeSet( >>>>>> ManyToOneType.java:132) >>>>>> at org.hibernate.persister.collection. >>>>>> AbstractCollectionPersister. >>>>>> writeElement(AbstractCollectionPersister.java:867) >>>>>> at org.hibernate.persister.collection. >>>>>> AbstractCollectionPersister. >>>>>> insertRows(AbstractCollectionPersister.java:1475) >>>>>> at org.hibernate.action.internal.CollectionUpdateAction.execute( >>>>>> CollectionUpdateAction.java:86) >>>>>> at org.hibernate.engine.spi.ActionQueue.execute( >>>>>> ActionQueue.java:362) >>>>>> at org.hibernate.engine.spi.ActionQueue.executeActions( >>>>>> ActionQueue.java:354) >>>>>> at org.hibernate.engine.spi.ActionQueue.executeActions( >>>>>> ActionQueue.java:278) >>>>>> at org.hibernate.event.internal.AbstractFlushingEventListener. >>>>>> performExecutions(AbstractFlushingEventListener.java:326) >>>>>> at org.hibernate.event.internal.DefaultFlushEventListener. >>>>>> onFlush( >>>>>> DefaultFlushEventListener.java:52) >>>>>> at org.hibernate.internal.SessionImpl.flush(SessionImpl. >>>>>> java:1213) >>>>>> at org.hibernate.internal.SessionImpl.managedFlush( >>>>>> SessionImpl.java:402) >>>>>> at org.hibernate.engine.transaction.internal.jdbc. >>>>>> JdbcTransaction. >>>>>> beforeTransactionCommit(JdbcTransaction.java:101) >>>>>> at org.hibernate.engine.transaction.spi.AbstractTransactionImpl. >>>>>> commit(AbstractTransactionImpl.java:175) >>>>>> at org.springframework.orm.hibernate4. >>>>>> HibernateTransactionManager. >>>>>> doCommit(HibernateTransactionManager.java:554) >>>>>> at org.springframework.transaction.support. >>>>>> AbstractPlatformTransactionManager.processCommit( >>>>>> AbstractPlatformTransactionManager.java:755) >>>>>> at org.springframework.transaction.support. >>>>>> AbstractPlatformTransactionManager.commit( >>>>>> AbstractPlatformTransactionMan >>>>>> ager.java:724) >>>>>> at org.springframework.transaction.interceptor. >>>>>> TransactionAspectSupport.commitTransactionAfterReturnin >>>>>> g(TransactionAspectSupport.java:475) >>>>>> at org.springframework.transaction.interceptor. >>>>>> TransactionAspectSupport.invokeWithinTransaction( >>>>>> TransactionAspectSupport.java:270) >>>>>> at org.springframework.transaction.interceptor. >>>>>> TransactionInterceptor.invoke(TransactionInterceptor.java:94) >>>>>> at org.springframework.aop.framework.ReflectiveMethodInvocation. >>>>>> proceed(ReflectiveMethodInvocation.java:172) >>>>>> at org.springframework.aop.interceptor. >>>>>> ExposeInvocationInterceptor. >>>>>> invoke(ExposeInvocationInterceptor.java:91) >>>>>> at org.springframework.aop.framework.ReflectiveMethodInvocation. >>>>>> proceed(ReflectiveMethodInvocation.java:172) >>>>>> at org.springframework.aop.framework.JdkDynamicAopProxy. >>>>>> invoke(JdkDynamicAopProxy.java:204) >>>>>> at com.sun.proxy.$Proxy112.get(Unknown Source) >>>>>> at java.lang.reflect.Method.invoke(Method.java:606) >>>>>> at org.apache.wicket.proxy.LazyInitProxyFactory$ >>>>>> JdkHandler.invoke( >>>>>> LazyInitProxyFactory.java:435) >>>>>> at com.sun.proxy.$Proxy94.get(Unknown Source) >>>>>> at braunimmobilien.webapp.nachweis.NachweisPanel.<init>( >>>>>> NachweisPanel.java:100) >>>>>> at braunimmobilien.webapp.nachweis.NachweisPage.<init>( >>>>>> NachweisPage.java:47) >>>>>> at java.lang.reflect.Constructor.newInstance(Constructor.java: >>>>>> 526) >>>>>> at org.apache.wicket.session.DefaultPageFactory.newPage( >>>>>> DefaultPageFactory.java:171) >>>>>> at org.apache.wicket.session.DefaultPageFactory.newPage( >>>>>> DefaultPageFactory.java:99) >>>>>> at org.apache.wicket.DefaultMapperContext.newPageInstance( >>>>>> DefaultMapperContext.java:137) >>>>>> at org.apache.wicket.core.request.handler.PageProvider. >>>>>> resolvePageInstance(PageProvider.java:268) >>>>>> at org.apache.wicket.core.request.handler.PageProvider. >>>>>> getPageInstance(PageProvider.java:166) >>>>>> at org.apache.wicket.request.handler.render.PageRenderer. >>>>>> getPage(PageRenderer.java:78) >>>>>> at org.apache.wicket.request.handler.render. >>>>>> WebPageRenderer.respond( >>>>>> WebPageRenderer.java:271) >>>>>> at org.apache.wicket.core.request.handler. >>>>>> RenderPageRequestHandler. >>>>>> respond(RenderPageRequestHandler.java:175) >>>>>> at org.apache.wicket.request.cycle.RequestCycle$ >>>>>> HandlerExecutor.respond(RequestCycle.java:862) >>>>>> at org.apache.wicket.request.RequestHandlerStack.execute( >>>>>> RequestHandlerStack.java:64) >>>>>> at org.apache.wicket.request.cycle.RequestCycle.execute( >>>>>> RequestCycle.java:261) >>>>>> at org.apache.wicket.request.cycle.RequestCycle. >>>>>> processRequest(RequestCycle.java:218) >>>>>> at org.apache.wicket.request.cycle.RequestCycle. >>>>>> processRequestAndDetach(RequestCycle.java:289) >>>>>> at org.apache.wicket.protocol.http.WicketFilter. >>>>>> processRequestCycle( >>>>>> WicketFilter.java:259) >>>>>> at org.apache.wicket.protocol.http.WicketFilter. >>>>>> processRequest(WicketFilter.java:201) >>>>>> at org.apache.wicket.protocol.http.WicketFilter.doFilter( >>>>>> WicketFilter.java:282) >>>>>> at org.eclipse.jetty.servlet.ServletHandler$CachedChain. >>>>>> doFilter(ServletHandler.java:1338) >>>>>> at com.opensymphony.sitemesh.webapp.SiteMeshFilter. >>>>>> doFilter(SiteMeshFilter.java:65) >>>>>> at org.eclipse.jetty.servlet.ServletHandler$CachedChain. >>>>>> doFilter(ServletHandler.java:1338) >>>>>> at org.springframework.orm.hibernate4.support. >>>>>> OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java: >>>>>> 152) >>>>>> at org.springframework.web.filter.OncePerRequestFilter. >>>>>> doFilter(OncePerRequestFilter.java:107) >>>>>> at org.eclipse.jetty.servlet.ServletHandler$CachedChain. >>>>>> doFilter(ServletHandler.java:1338) >>>>>> at braunimmobilien.webapp.MessageFilter.doFilter( >>>>>> MessageFilter.java:32) >>>>>> at org.eclipse.jetty.servlet.ServletHandler$CachedChain. >>>>>> doFilter(ServletHandler.java:1338) >>>>>> at org.springframework.web.filter.CharacterEncodingFilter. >>>>>> doFilterInternal(CharacterEncodingFilter.java:88) >>>>>> at org.springframework.web.filter.OncePerRequestFilter. >>>>>> doFilter(OncePerRequestFilter.java:107) >>>>>> at org.eclipse.jetty.servlet.ServletHandler$CachedChain. >>>>>> doFilter(ServletHandler.java:1338) >>>>>> at org.eclipse.jetty.servlet.ServletHandler.doHandle( >>>>>> ServletHandler.java:484) >>>>>> at org.eclipse.jetty.server.handler.ScopedHandler.handle( >>>>>> ScopedHandler.java:119) >>>>>> at org.eclipse.jetty.security.SecurityHandler.handle( >>>>>> SecurityHandler.java:524) >>>>>> at org.eclipse.jetty.server.session.SessionHandler. >>>>>> doHandle(SessionHandler.java:233) >>>>>> at org.eclipse.jetty.server.handler.ContextHandler. >>>>>> doHandle(ContextHandler.java:1065) >>>>>> at org.eclipse.jetty.servlet.ServletHandler.doScope( >>>>>> ServletHandler.java:413) >>>>>> at org.eclipse.jetty.server.session.SessionHandler. >>>>>> doScope(SessionHandler.java:192) >>>>>> at org.eclipse.jetty.server.handler.ContextHandler. >>>>>> doScope(ContextHandler.java:999) >>>>>> at org.eclipse.jetty.server.handler.ScopedHandler.handle( >>>>>> ScopedHandler.java:117) >>>>>> at org.eclipse.jetty.server.handler.ContextHandlerCollection. >>>>>> handle( >>>>>> ContextHandlerCollection.java:250) >>>>>> at org.eclipse.jetty.server.handler.HandlerCollection. >>>>>> handle(HandlerCollection.java:149) >>>>>> at org.eclipse.jetty.server.handler.HandlerWrapper.handle( >>>>>> HandlerWrapper.java:111) >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:350) >>>>>> at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest( >>>>>> AbstractHttpConnection.java:454) >>>>>> at org.eclipse.jetty.server.AbstractHttpConnection. >>>>>> headerComplete( >>>>>> AbstractHttpConnection.java:890) >>>>>> at org.eclipse.jetty.server.AbstractHttpConnection$ >>>>>> RequestHandler.headerComplete(AbstractHttpConnection.java:944) >>>>>> at org.eclipse.jetty.http.HttpParser.parseNext( >>>>>> HttpParser.java:630) >>>>>> at org.eclipse.jetty.http.HttpParser.parseAvailable( >>>>>> HttpParser.java:230) >>>>>> at org.eclipse.jetty.server.AsyncHttpConnection.handle( >>>>>> AsyncHttpConnection.java:77) >>>>>> at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle( >>>>>> SelectChannelEndPoint.java:606) >>>>>> at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run( >>>>>> SelectChannelEndPoint.java:46) >>>>>> at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob( >>>>>> QueuedThreadPool.java:603) >>>>>> at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run( >>>>>> QueuedThreadPool.java:538) >>>>>> at java.lang.Thread.run(Thread.java:744) >>>>>> >>>>>> at >>>>>> >>>>>> >>>>>> final NachweiseForm nachweiseform=new NachweiseForm("form",model); >>>>>> if (!(pars.getPosition("nachweisnr")>=0&&pars.get(" >>>>>> nachweisnr").toLong()>0)) >>>>>> { >>>>>> >>>>>> if (pars.getPosition("kundennr")>=0&&pars.get("kundennr"). >>>>>> toLong()>0) >>>>>> { >>>>>> here ===> Kunde kunde=kundeManager.get(new >>>>>> Long(pars.get("kundennr").toString())); >>>>>> >>>>>> System.err.println("====================== set Kunde >>>>>> reached"); >>>>>> nachweiseform.getModelObject().setKunde(kunde); >>>>>> // nachweiseform.getModelObject().getKunde().addNachweis( >>>>>> nachweiseform.getModelObject()); >>>>>> } >>>>>> >>>>>> } >>>>>> >>>>>> >>>>>> >>>>>> add(nachweiseform); >>>>>> >>>>>> >>>>>> >>>>>> public List<Nachweise> getNachweise() { >>>>>> >>>>>>> return nachweise; >>>>>>> } >>>>>>> >>>>>>> It seems like both sides of the relationship are set as >>>>>>> insertable=false, >>>>>>> updatable = false. This would explain why kunde becomes null after >>>>>>> saving, >>>>>>> though it contradicts your statement that everything is saved ok in the >>>>>>> db. >>>>>>> >>>>>>> Either way the AbstractEntityModel has nothing to do with how >>>>>>> properties >>>>>>> of >>>>>>> the model object are stored in the db, so I still believe the problem >>>>>>> is >>>>>>> somewhere else in your code. >>>>>>> >>>>>>> Marios >>>>>>> >>>>>>> >>>>>>> On Mon, May 5, 2014 at 11:26 AM, Yahoo <hansheinrichbr...@yahoo.de> >>>>>>> wrote: >>>>>>> >>>>>>> First I have to tell you concerning the mapping I used the wrong word >>>>>>> >>>>>>>> the >>>>>>>> dependencies in the mapping are not recursive bur circular. >>>>>>>> >>>>>>>> Am 04.05.2014 22:24, schrieb mscoon: >>>>>>>> >>>>>>>> I'm not sure I see something wrong in your code, but then again you >>>>>>>> have >>>>>>>> >>>>>>>> omitted a lot of stuff which could be cruicial. >>>>>>>>> Does nachweiseform have any components that show/update kunde? >>>>>>>>> >>>>>>>>> Label nachkundnr=new Label("kunde.id"); >>>>>>>> add(nachkundnr); >>>>>>>> >>>>>>>> What exactly do you mean by saying "after save it disappears"? Has >>>>>>>> it >>>>>>>> been >>>>>>>> >>>>>>>> stored correctly in the database or is it wrong there too? >>>>>>>>> Everything is stored correctly in the Database only NachKundNr is >>>>>>>>> NULL >>>>>>>> Have you tried to create a minimal case where you are setting kunde >>>>>>>> to an >>>>>>>> >>>>>>>> object without having any wicket forms? >>>>>>>>> I have no problems with kunde in the TestCases >>>>>>>> What is the value of kunde before saving to the db? If it is >>>>>>>> correctly set >>>>>>>> >>>>>>>> then you likely have a problem with your mapping. If it's not >>>>>>>>> correctly >>>>>>>>> set >>>>>>>>> then something is wrong with your form. >>>>>>>>> >>>>>>>>> The problem is only with new Kunde() because Kunde must be preset >>>>>>>>> and >>>>>>>> cannot be changed in the Form. Before using AbstractEntityModel I took >>>>>>>> all >>>>>>>> Ids of the MANYTOONE relationships in the model and loaded them from >>>>>>>> the >>>>>>>> Database and implanted them newly in Kunde before storing. My hope was >>>>>>>> to >>>>>>>> avoid this by using AbstractEntityModel.This works for all >>>>>>>> Dependencies >>>>>>>> which are set in the Form >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Sun, May 4, 2014 at 1:02 PM, Yahoo <hansheinrichbr...@yahoo.de> >>>>>>>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>> I have a suspicion: I have defened all dependencies with jpa or >>>>>>>>> hibernate >>>>>>>>> >>>>>>>>> annotation. >>>>>>>>>> So I have also a lot of cicular dependencies, which sometimes make >>>>>>>>>> problem. >>>>>>>>>> I will give you 2 examples. one which is OK when I use >>>>>>>>>> AbstractEntityModel >>>>>>>>>> and on which makes problem, which is not set in the form through the >>>>>>>>>> Model >>>>>>>>>> but before. >>>>>>>>>> >>>>>>>>>> 1. >>>>>>>>>> >>>>>>>>>> the hibernatemodel: >>>>>>>>>> >>>>>>>>>> @IndexedEmbedded >>>>>>>>>> @ManyToOne(cascade=CascadeType.MERGE,fetch = FetchType.LAZY) >>>>>>>>>> @JoinColumn(name="NachAngNr",insertable=false, updatable=false) >>>>>>>>>> >>>>>>>>>> public Angebot getAngebot(){ >>>>>>>>>> return this.angebot; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> recursive part in Angebot: >>>>>>>>>> >>>>>>>>>> @XmlTransient >>>>>>>>>> @OneToMany(cascade={CascadeType.ALL},fetch=FetchType.LAZY) >>>>>>>>>> @JoinColumn(name="NachAngNr",nullable=false ) >>>>>>>>>> public List<Nachweise> getNachweise() { >>>>>>>>>> return nachweise; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> Angebot is set by DropDownChoice in the form >>>>>>>>>> >>>>>>>>>> private IModel<List<? extends Angebot>> makeChoicesAngebote >>>>>>>>>> = >>>>>>>>>> new >>>>>>>>>> AbstractReadOnlyModel<List<? extends Angebot>>() >>>>>>>>>> { >>>>>>>>>> @Override >>>>>>>>>> public List<Angebot> getObject() >>>>>>>>>> { List<Angebot> angebotelist=new >>>>>>>>>> ArrayList<Angebot>(); >>>>>>>>>> Iterator angeboteiterator= >>>>>>>>>> angebotManager.getAngebote().iterator(); >>>>>>>>>> while(angeboteiterator.hasNext()){ >>>>>>>>>> Angebot angebot=(Angebot) >>>>>>>>>> angeboteiterator.next(); >>>>>>>>>> if(angebot.getAngstatus().getId().longValue()==1) >>>>>>>>>> angebotelist.add(angebot); >>>>>>>>>> } >>>>>>>>>> return angebotelist; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> }; >>>>>>>>>> IChoiceRenderer<Angebot> angebotchoicerenderer= >>>>>>>>>> new IChoiceRenderer<Angebot>() { >>>>>>>>>> >>>>>>>>>> public Object getDisplayValue(Angebot angebot) >>>>>>>>>> { >>>>>>>>>> return angebot.getId(); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> public String getIdValue(Angebot angebot,int >>>>>>>>>> index) >>>>>>>>>> { >>>>>>>>>> return angebot.getId(); >>>>>>>>>> } >>>>>>>>>> }; >>>>>>>>>> >>>>>>>>>> final DropDownChoice<Angebot> angebote = new >>>>>>>>>> DropDownChoice<Angebot>(" >>>>>>>>>> angebot", >>>>>>>>>> makeChoicesAngebote,angebotchoicerenderer); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> The recursive part is treated in NachweiseManagerImpl : >>>>>>>>>> >>>>>>>>>> public Nachweise saveNachweise(Nachweise nachweise) throws >>>>>>>>>> NachweiseExistsException { >>>>>>>>>> >>>>>>>>>> try { >>>>>>>>>> if(nachweise.getId()==null){ >>>>>>>>>> System.err.println("xxxxxxxxxxxxxxxxxx Id=null"); >>>>>>>>>> >>>>>>>>>> if(nachweise.getMitarbeiter()!=null) { >>>>>>>>>> } >>>>>>>>>> ======================= recursive Part for >>>>>>>>>> Kunde >>>>>>>>>> later ======================= >>>>>>>>>> /* if(nachweise.getKunde()!=null) { >>>>>>>>>> System.err.println("xxxxxxxxxxxxxxxxxx >>>>>>>>>> Kunde"); >>>>>>>>>> (nachweise.getKunde()).addNachweis(nachweise); >>>>>>>>>> }*/ >>>>>>>>>> if(nachweise.getXtyp()!=null) { >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> if(nachweise.getAngebot()!=null) { >>>>>>>>>> nachweise.getAngebot().addNachweis(nachweise); >>>>>>>>>> System.err.println("xxxxxxxxxxxxxxxxxx >>>>>>>>>> Angebot"); >>>>>>>>>> } >>>>>>>>>> ======================= recursive Part for Angebot >>>>>>>>>> ======================= >>>>>>>>>> if(nachweise.getAngebot1()!=null) { >>>>>>>>>> nachweise.getAngebot1().addNachweis1(nachweise); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> if(nachweise.getAngebot2()!=null) { >>>>>>>>>> nachweise.getAngebot2(). >>>>>>>>>> addNachweis2(nachweise); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> if(nachweise.getObjekt()!=null) { >>>>>>>>>> nachweise.getObjekt().addNachweise(nachweise); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> if(nachweise.getPerson()!=null) { >>>>>>>>>> nachweise.getPerson().addNachweis(nachweise); >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> return nachweiseDao.saveNachweise(nachweise); >>>>>>>>>> } catch (DataIntegrityViolationException e) { >>>>>>>>>> //e.printStackTrace(); >>>>>>>>>> log.warn(e.getMessage()); >>>>>>>>>> throw new NachweiseExistsException("Nachweise '" + >>>>>>>>>> nachweise.getId() + "' already exists!"); >>>>>>>>>> } catch (JpaSystemException e) { // needed for JPA >>>>>>>>>> //e.printStackTrace(); >>>>>>>>>> log.warn(e.getMessage()); >>>>>>>>>> throw new NachweiseExistsException("Nachweise '" + >>>>>>>>>> nachweise.getId() + "' already exists!"); >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> Angebot is set by the DropDownChoice Nachweise is first inserted and >>>>>>>>>> can >>>>>>>>>> be changed. >>>>>>>>>> >>>>>>>>>> 2. >>>>>>>>>> >>>>>>>>>> the hibernateModel: >>>>>>>>>> >>>>>>>>>> //@XmlTransient >>>>>>>>>> @ManyToOne(cascade = CascadeType.MERGE,fetch=FetchType.LAZY) >>>>>>>>>> @JoinColumn(name="NachKundNr",insertable=false, updatable=false) >>>>>>>>>> public Kunde getKunde(){ >>>>>>>>>> return this.kunde; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> recursive Part for Kunde >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> @XmlTransient >>>>>>>>>> @OneToMany(cascade={CascadeType.MERGE},fetch=FetchType.LAZY) >>>>>>>>>> @JoinColumn(name="NachKundNr",insertable=false, updatable=false ) >>>>>>>>>> public List<Nachweise> getNachweise() { >>>>>>>>>> return nachweise; >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> Kunde ist set is set after before adding the form : >>>>>>>>>> >>>>>>>>>> final NachweiseForm nachweiseform=new >>>>>>>>>> NachweiseForm("form",model); >>>>>>>>>> >>>>>>>>>> if (!(pars.getPosition("nachweisnr")>=0&&pars.get(" >>>>>>>>>> nachweisnr").toLong()>0)) >>>>>>>>>> { >>>>>>>>>> >>>>>>>>>> if (pars.getPosition("kundennr")>=0&&pars.get("kundennr"). >>>>>>>>>> toLong()>0) >>>>>>>>>> { >>>>>>>>>> Kunde kunde=kundeManager.get(new >>>>>>>>>> Long(pars.get("kundennr"). >>>>>>>>>> toString())); >>>>>>>>>> System.err.println("====================== set Kunde >>>>>>>>>> reached"); >>>>>>>>>> nachweiseform.getModelObject().setKunde(kunde); >>>>>>>>>> ======================= recursive Part for Kunde early set >>>>>>>>>> ======================= >>>>>>>>>> nachweiseform.getModelObject().getKunde().addNachweis( >>>>>>>>>> nachweiseform.getModelObject()); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> after opening the form you see the Id of Kunde >>>>>>>>>> after save it disappears. >>>>>>>>>> >>>>>>>>>> add(nachweiseform); >>>>>>>>>> >>>>>>>>>> When I set the recursive part later same result >>>>>>>>>> >>>>>>>>>> When I try to set the recursive part later I get the same result >>>>>>>>>> >>>>>>>>>> Am 04.05.2014 08:55, schrieb mscoon: >>>>>>>>>> >>>>>>>>>> Usually this is not a problem. But maybe you are doing something >>>>>>>>>> different >>>>>>>>>> >>>>>>>>>> that the "usual". I think you will need to show us your code to >>>>>>>>>> help >>>>>>>>>> >>>>>>>>>>> you >>>>>>>>>>> any further. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Sun, May 4, 2014 at 9:12 AM, Yahoo <hansheinrichbr...@yahoo.de> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> It's the solution for all MANYTOONE-Fields defined in the Form >>>>>>>>>>> >>>>>>>>>>> I have a MANYTOONE-Field which is preset and not set in the Form. >>>>>>>>>>> >>>>>>>>>>>> This field is not stored. >>>>>>>>>>>> >>>>>>>>>>>> Am 02.05.2014 01:24, schrieb mscoon: >>>>>>>>>>>> >>>>>>>>>>>> No you don't. The referenced objects will be serialized along >>>>>>>>>>>> with >>>>>>>>>>>> the >>>>>>>>>>>> >>>>>>>>>>>> entity you are serializing and everything should work just >>>>>>>>>>>> fine. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>>> On Thu, May 1, 2014 at 10:30 PM, Yahoo < >>>>>>>>>>>>> hansheinrichbr...@yahoo.de >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> Ok,thank you, that's it. >>>>>>>>>>>>> >>>>>>>>>>>>> My Entity has a lot of MANYTOONE relationships which are set >>>>>>>>>>>>> >>>>>>>>>>>>> byDropDownChoices. >>>>>>>>>>>>>> In the case of a new entity, do I have to load all these >>>>>>>>>>>>>> Entities >>>>>>>>>>>>>> too >>>>>>>>>>>>>> and >>>>>>>>>>>>>> to save their ids ? >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Am 01.05.2014 15:01, schrieb mscoon: >>>>>>>>>>>>>> >>>>>>>>>>>>>> Heiner, >>>>>>>>>>>>>> >>>>>>>>>>>>>> You didn't tell us which dependency injection framework you >>>>>>>>>>>>>> you >>>>>>>>>>>>>> >>>>>>>>>>>>>> using. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> If you're using Spring then simply use the @SpringBean >>>>>>>>>>>>>>> annotation to >>>>>>>>>>>>>>> get a >>>>>>>>>>>>>>> reference to an EntityManager or a Dao. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> @SpringBean automatically works only for components so you'll >>>>>>>>>>>>>>> also >>>>>>>>>>>>>>> need >>>>>>>>>>>>>>> to >>>>>>>>>>>>>>> add a call to injector to your model's constructor. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> public class MyModel implements IModel { >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> @SpringBean >>>>>>>>>>>>>>> EntityManager entityManager; >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> public MyModel() { >>>>>>>>>>>>>>> Injector.get().inject(this); >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ... >>>>>>>>>>>>>>> } >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> This will take care of instantiating all @SpringBean annotated >>>>>>>>>>>>>>> fields >>>>>>>>>>>>>>> as >>>>>>>>>>>>>>> well are handle their serialization/deserialization. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Marios >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Thu, May 1, 2014 at 3:42 PM, Yahoo < >>>>>>>>>>>>>>> hansheinrichbr...@yahoo.de> >>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I tried the AbstractEntityModel <http:// >>>>>>>>>>>>>>> http://wicketinaction. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> com/2008/09/building-a-smart-entitymodel/> from Igor >>>>>>>>>>>>>>> Vaynberg >>>>>>>>>>>>>>> but I >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> didn't get >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> solved the @Dependency annotation from Vaynbergs salve. >>>>>>>>>>>>>>>> Is there another solution for the Hibernate integration for >>>>>>>>>>>>>>>> models. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Best regards >>>>>>>>>>>>>>>> Heiner >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> ------------------------------ >>>>>>>>>>>>>>>> ------------------------------ >>>>>>>>>>>>>>>> --------- >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscribe@wicket. >>>>>>>>>>>>>>>> apache.org >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> For additional commands, e-mail: >>>>>>>>>>>>>>> users-h...@wicket.apache.org >>>>>>>>>>>>>> >>>>>>>>>>>>>> ------------------------------ >>>>>>>>>>>>>> ------------------------------ >>>>>>>>>>>>>> --------- >>>>>>>>>>>>>> >>>>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>>>>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ------------------------------------------------------------ >>>>>>>>>>>> --------- >>>>>>>>>>>> >>>>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> ------------------------------------------------------------ >>>>>>>>> --------- >>>>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------ >>>>>> --------- >>>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>>>> For additional commands, e-mail: users-h...@wicket.apache.org >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>> For additional commands, e-mail: users-h...@wicket.apache.org > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org