Hi, Piratenvisier 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. > Because nowI have to load Kunde twice: First when I prepare the new > Nachweise() before calling the form > and then when I save Nachweise when I submit the Form. >
I would think this is pretty reqular as we have two requests -- one for rendering the form, the second for submitting. In between may be a long user think time. Watch out for your second level cache config, you would usually have a cache hit on the second call to kundeManager.get(...), thus avoiding a second trip to the database. > My idea was to implant Kunde through the form. What do you mean by this? > > But how could you do it only by a Label. Bye, Stefan > 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-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 > -- im Auftrag der eFonds Solutions AG, +49-89-579494-3417 --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org