On Mon, May 4, 2009 at 3:42 AM, tibi <t...@dds.nl> wrote: > i just did it and its quite simple... > > you need the add a getter for the list of the many relation. > in you jsp file i will find this: > <!-- todo: change this to read the identifier field from the other > pojo --> > <s:select name="contactPerson.relation.id" list="relationList" > listKey="id" listValue="companyName"></s:select> > > you don't need to change any thing. only make in your action a get*list > to return the list. > in my case a public List<Relation> getRelationList(){return > genericRelationManager.getAll();} > (pseudo code) > > mayby a good idea to write an tutorial about this. or to make the > appfuse:gen add this getter. > > matt you say you don't have a good idea what to do. is this not a good > idea?
I believe ideally, the id can be used to hydrate the object so there's the full object set on the domain before it's saved. This can be done with PropertyEditors in Spring MVC, but other frameworks would require manually writing code to hydrate the child object(s). Matt > > > tibi > > > > > Matt Raible wrote: > > Here's the error that's causing the problem: > > > > |Caused by: org.springframework.dao.DataIntegrityViolationException: > not-null property references a null or transient value: > cl.lejadesh.app.model.Persona.comuna; nested exception is > org.hibernate.PropertyValueException: not-null property references a null or > transient value: cl.lejadesh.app.model.Persona.comuna > > > > > > > > | > > It looks like you need to populate part of your object before calling > > save. > > > > Matt > > > > 2009/5/1 Leonardo Castaño <leonardo.cast...@gmail.com > > <mailto:leonardo.cast...@gmail.com>> > > > > I am fix the edit problem... > > but i have the follow problem when press the button SAVE, may be > > you have a clue to give me ... > > > > Tks Matt > > > > |javax.faces.FacesException: Error calling action method of component > with id personaForm:save > > at > org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:69) > > at > javax.faces.component.UICommand.broadcast(UICommand.java:121) > > at > org.ajax4jsf.framework.ajax.AjaxViewRoot.processEvents(AjaxViewRoot.java:274) > > at > org.ajax4jsf.framework.ajax.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:250) > > at > org.ajax4jsf.framework.ajax.AjaxViewRoot.processApplication(AjaxViewRoot.java:405) > > at > org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32) > > at > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103) > > at > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76) > > at > javax.faces.webapp.FacesServlet.service(FacesServlet.java:148) > > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) > > at > org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:75) > > at > org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:213) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > cl.lejadesh.app.webapp.filter.MessageFilter.doFilter(MessageFilter.java:46) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) > > at > com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164) > > at > org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141) > > at > org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90) > > at > org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:75) > > at > net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:92) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > cl.lejadesh.app.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:74) > > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:359) > > at > org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) > > at > org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:172) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:268) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:87) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:61) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) > > at > org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) > > at > org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:371) > > at > org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:174) > > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236) > > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96) > > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) > > at > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) > > at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) > > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) > > at > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > > at > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) > > at > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > > at org.mortbay.jetty.Server.handle(Server.java:324) > > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) > > at > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842) > > at > org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648) > > at > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) > > at > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) > > at > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) > > at > org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) > > Caused by: javax.faces.el.EvaluationException: javax.el.ELException: > /personaForm.xhtml @29,117 action="#{personaForm.save}": > org.springframework.dao.DataIntegrityViolationException: not-null property > references a null or transient value: cl.lejadesh.app.model.Persona.comuna; > nested exception is org.hibernate.PropertyValueException: not-null property > references a null or transient value: cl.lejadesh.app.model.Persona.comuna > > at > javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:79) > > at > org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:54) > > ... 87 more > > Caused by: javax.el.ELException: /personaForm.xhtml @29,117 > action="#{personaForm.save}": > org.springframework.dao.DataIntegrityViolationException: not-null property > references a null or transient value: cl.lejadesh.app.model.Persona.comuna; > nested exception is org.hibernate.PropertyValueException: not-null property > references a null or transient value: cl.lejadesh.app.model.Persona.comuna > > at > com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:74) > > at > javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:75) > > ... 88 more > > Caused by: org.springframework.dao.DataIntegrityViolationException: > not-null property references a null or transient value: > cl.lejadesh.app.model.Persona.comuna; nested exception is > org.hibernate.PropertyValueException: not-null property references a null or > transient value: cl.lejadesh.app.model.Persona.comuna > > at > org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630) > > at > org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:738) > > at > org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:614) > > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:709) > > at > org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678) > > at > org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321) > > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > > at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) > > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) > > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) > > at $Proxy49.save(Unknown Source) > > at > cl.lejadesh.app.webapp.action.PersonaForm.save(PersonaForm.java:49) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > at java.lang.reflect.Method.invoke(Method.java:585) > > at com.sun.el.parser.AstValue.invoke(AstValue.java:187) > > at > com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) > > at > com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) > > ... 89 more > > Caused by: org.hibernate.PropertyValueException: not-null property > references a null or transient value: cl.lejadesh.app.model.Persona.comuna > > at > org.hibernate.engine.Nullability.checkNullability(Nullability.java:72) > > at > org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:270) > > at > org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:128) > > at > org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196) > > at > org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76) > > at > org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26) > > at > org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) > > at > org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) > > at > org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) > > at > org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:606) > > ... 106 more| > > > > > > :) > > > > > > 2009/5/2 Matt Raible <m...@raibledesigns.com > > <mailto:m...@raibledesigns.com>> > > > > Yes, this is correct. > > > > > > 2009/5/1 Leonardo Castaño <leonardo.cast...@gmail.com > > <mailto:leonardo.cast...@gmail.com>> > > > > When we are going to generate a related table, only we > > need to change the JSF Templates in webapp.action and > > htmlx in webapp? > > > > We dont need to create a new Dao and DaoHibernate? > > > > > > > > 2009/5/2 Matt Raible <m...@raibledesigns.com > > <mailto:m...@raibledesigns.com>> > > > > AMP doesn't support one-to-many and man-to-many > > relationships, so if you had those in your POJOs when > > you generated the code, chances are incorrect code was > > generated. The reason we don't support these is we > > haven't figured out the best pattern and code to > > generate. I'd be happy to support them if I had the > > knowledge of how to do it. > > > > Matt > > > > 2009/5/1 Leonardo Castaño <leonardo.cast...@gmail.com > > <mailto:leonardo.cast...@gmail.com>> > > > > Hello, I have the following error when try to edit > > the persona item, I have two tables related > > Persona and Comuna, I have run > > > > I have created two related tables in mysql and run > > followin > > mvn appfuse:gen -Dentity=Persona > > mvn appfuse:gen -Dentity=Comuna > > > > all rigth in appfuse log > > then run > > mvn jetty:run > > then the error is when I try to edit one "persona" > > item by browser > > > > An Error Occurred: > > > > Exception while calling encodeEnd on component : > > {Component-Path : [Class: > > org.ajax4jsf.framework.ajax.AjaxViewRoot,ViewId: > > /personaForm.xhtml][Class: > > javax.faces.component.html.HtmlForm,Id: > > personaForm][Class: > > javax.faces.component.html.HtmlPanelGrid,Id: j_id2]} > > > > Some one help me please !! > > Tkz > > > > > > -- > > Leonardo Castaño D. > > Listening http://www.concierto.cl/envivo.asp music > > of the 80s <http://www.concierto.cl/envivo.asp> > > > > > > > > > > > > -- > > Leonardo Castaño D. > > > > > > > > > > > > -- > > Leonardo Castaño D. > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@appfuse.dev.java.net > For additional commands, e-mail: users-h...@appfuse.dev.java.net > >