Here are exceptions I got after submitting:
Entering getProperty() Error setting value ognl.NoSuchPropertyException: java.util.HashSet.0 ... Entering getProperty() Error setting value ognl.NoSuchPropertyException: java.util.HashSet.0 at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:67) .. Entering getProperty() Error setting value ognl.NoSuchPropertyException: java.util.HashSet.1 at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:67) .. Entering getProperty() Error setting value ognl.NoSuchPropertyException: java.util.HashSet.1 at ognl.SetPropertyAccessor.getProperty(SetPropertyAccessor.java:67) .. Hibernate Validation in class com.metacrud.web.ParentAction Hibernate Validation found no erros. Executing action method = saveOrUpdate Redirecting to finalLocation /Metacrud/listParent after Locale=fr intercept } processing flush-time cascades dirty checking collections Collection found: [com.metacrud.domain.Parent.values#1], was: [<unreferenced>] (initialized) Flushed: 0 insertions, 1 updates, 0 deletions to 1 objects Flushed: 1 (re)creations, 0 updates, 1 removals to 1 collections listing entities: com.metacrud.domain.Parent{id=1, values=[], name=Parent1} about to open PreparedStatement (open PreparedStatements: 0, globally: 0) update PARENT set NAME=? where PARENT_ID=? Executing batch size: 1 about to close PreparedStatement (open PreparedStatements: 1, globally: 1) Deleting collection: [com.metacrud.domain.Parent.values#1] about to open PreparedStatement (open PreparedStatements: 0, globally: 0) delete from PARENT_CHILD where PARENT_ID=? done deleting collection > From: apin...@hotmail.co.uk > To: user@struts.apache.org > Subject: RE: CRUD with a OneToMany association under Struts 2 / Hibernate 3 > Date: Thu, 1 Apr 2010 12:57:39 +0100 > > > > > in log4j.properties file (same location as struts.xml and hibernate config > files) > > add > > log4j.logger.com.opensymphony.xwork2.interceptor.ParametersInterceptor=debug > > this will output param name/value pairs being posted from your page. > > > > ---------------------------------------- > > From: brgrandj...@live.fr > > To: user@struts.apache.org > > Subject: RE: CRUD with a OneToMany association under Struts 2 / Hibernate 3 > > Date: Thu, 1 Apr 2010 13:54:33 +0200 > > > > > > Dear Adam, > > > > > > > > I just added a public Child getValues(int idx) in the Parent class > > definition but it is never called. > > > > > > > > Could u explain to me where and how can I turn on the parameterinterceptor > > logging? In the struts.xml file? > > > > > > > > thks a lot > > > > > > bruno > > > > > > > > > > > >> From: apin...@hotmail.co.uk > >> To: user@struts.apache.org > >> Subject: RE: CRUD with a OneToMany association under Struts 2 / Hibernate 3 > >> Date: Thu, 1 Apr 2010 12:18:48 +0100 > >> > >> > >> > >> > >> turn on the parameterinterceptor logging and make sure as mentioned that > >> > >> 1) the values you expect for each child are being sent to the server (id > >> and name) > >> 2) the parameter names are correct for setting each child > >> > >> i had some issues getting lists of items to be updated by form submission > >> alone. > >> > >> for example does your parent object have a getValues method taking an > >> index value > >> > >> getParent().getValues(1).setId(1) > >> getParent().getValues(1).setName("bob") > >> > >> would be called by parameterinterceptor > >> > >> > >> ---------------------------------------- > >>> From: brgrandj...@live.fr > >>> To: user@struts.apache.org > >>> Subject: RE: CRUD with a OneToMany association under Struts 2 / Hibernate > >>> 3 > >>> Date: Thu, 1 Apr 2010 12:16:09 +0200 > >>> > >>> > >>> Dear René > >>> > >>> > >>> > >>> I changed my jsp page so as to integrate the following block: > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> which generates the following html code: > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> I can display my complete Child Set but I got the same result after > >>> updating: my Child Set is empty. > >>> > >>> > >>> > >>> Is that necessary to modify my ParentAction as well? If yes what to do? > >>> > >>> > >>> > >>> public class ParentAction extends ActionSupport implements ModelDriven { > >>> > >>> private static final long serialVersionUID = -2662966220408285700L; > >>> private Parent cl = new Parent(); > >>> private List clList = new ArrayList(); > >>> private ParentDAO clDAO = new ParentDAOImpl(); > >>> > >>> @Override > >>> public Parent getModel() { > >>> return cl; > >>> } > >>> > >>> public String saveOrUpdate() > >>> { // cl.values is empty here!! > >>> clDAO.saveOrUpdateParent(cl); > >>> return SUCCESS; > >>> } > >>> > >>> public String save() > >>> { > >>> clDAO.saveParent(cl); > >>> return SUCCESS; > >>> } > >>> > >>> public String list() > >>> { > >>> clList = clDAO.listParent(); > >>> return SUCCESS; > >>> } > >>> > >>> public String delete() > >>> { > >>> HttpServletRequest request = (HttpServletRequest) > >>> ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); > >>> clDAO.deleteParent(Long.parseLong(request.getParameter("id"))); > >>> return SUCCESS; > >>> } > >>> > >>> public String edit() > >>> { // cl.values contains some valid Child elements here!! > >>> HttpServletRequest request = (HttpServletRequest) > >>> ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); > >>> cl = clDAO.listParentById(Long.parseLong(request.getParameter("id"))); > >>> } > >>> return SUCCESS; > >>> } > >>> > >>> public Parent getParent() { > >>> return cl; > >>> } > >>> > >>> public void setParent(Parent cl) { > >>> this.cl = cl; > >>> } > >>> > >>> public List getParentList() { > >>> return clList; > >>> } > >>> > >>> public void setParentList(List clList) { > >>> this.clList = clList; > >>> } > >>> } > >>> > >>> > >>> > >>>> Date: Thu, 1 Apr 2010 11:30:23 +0200 > >>>> From: gie...@it-neering.net > >>>> To: user@struts.apache.org > >>>> Subject: Re: CRUD with a OneToMany association under Struts 2 / > >>>> Hibernate 3 > >>>> > >>>> Given the model you presented in the first post, your problem seems to > >>>> be that the posted values have not the correct name for the children's > >>>> form fields. The parameters names you would need are > >>>> > >>>> id > >>>> name > >>>> values[0].id > >>>> values[0].name > >>>> values[1].id > >>>> values[2].name > >>>> ... > >>>> > >>>> for the parameters interceptor to work properly when applying the posted > >>>> values. > >>>> > >>>> See here for more details: > >>>> http://struts.apache.org/2.1.8/docs/tabular-inputs.html > >>>> > >>>> - René > >>>> > >>>> bruno grandjean schrieb: > >>>>> Dear Rene, > >>>>> > >>>>> Thks a lot for replying to me because I am feeling a little bit alone > >>>>> with > >>>>> my CRUD ;-). In fact I am trying to build a dynamic MetaCrud. > >>>>> My pb is simple: in the same jsp page I would like to update a Parent > >>>>> object > >>>>> and its Childs (values): > >>>>> > >>>>> > >>>>> > >>>>>>>> name="name" label="Nom" /> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> From an existing Parent object with many Childs objects I can easily > >>>>> modify > >>>>> parent.name for instance but the collection of Child objects (values) is > >>>>> always empty in the ParentAction (saveOrUpdate() method) after > >>>>> submitting. > >>>>> However I can display each values[i].name in the jsp page with the > >>>>> correct > >>>>> value. > >>>>> So it is not an issue with Hibernate but with the jsp or ModelDriven > >>>>> interface I don't know..Do you have any idea? > >>>>> Basically I was not able to find a struts or spring documentation about > >>>>> CRUD > >>>>> & association between two entities on the same jsp page. > >>>>> best regards > >>>>> bruno > >>>>> > >>>>> > >>>>> > >>>>> -------------------------------------------------- > >>>>> From: "Rene Gielen" > >>>>> Sent: Wednesday, March 31, 2010 7:12 PM > >>>>> To: "Struts Users Mailing List" > >>>>> Subject: Re: CRUD with a OneToMany association under Struts 2 / > >>>>> Hibernate 3 > >>>>> > >>>>>> I'm not sure if I understand what your actual question is, nor whether > >>>>>> it is particularly Struts 2 related (rather than just Hibernate) - but > >>>>>> you might want to have a look in the CRUD demo section of the Struts 2 > >>>>>> showcase application. Maybe you will also find this demo useful: > >>>>>> http://github.com/rgielen/struts2crudevolutiondemo > >>>>>> > >>>>>> - René > >>>>>> > >>>>>> bruno grandjean schrieb: > >>>>>>> Hi > >>>>>>> > >>>>>>> I am trying to implement a simple CRUD with a OneToMany association > >>>>>>> under Struts 2 / Hibernate 3. > >>>>>>> I have two entities Parent and Child: > >>>>>>> > >>>>>>> @Entity > >>>>>>> @Table(name="PARENT") > >>>>>>> public class Parent { > >>>>>>> private Long id; > >>>>>>> private Set values = new HashSet(); > >>>>>>> .. > >>>>>>> @Entity > >>>>>>> @Table(name="CHILD") > >>>>>>> public class Child { > >>>>>>> private Long id; > >>>>>>> private String name; > >>>>>>> .. > >>>>>>> > >>>>>>> I can easily create, delete Parent or read the Child Set (values) but > >>>>>>> it is impossible to update Child Set. > >>>>>>> The jsp page (see below) reinit the values Set, no record after > >>>>>>> updating! > >>>>>>> Could u explain to me what's wrong? > >>>>>>> > >>>>>>> here are my code: > >>>>>>> > >>>>>>> @Entity > >>>>>>> @Table(name="PARENT") > >>>>>>> public class Parent { > >>>>>>> private Long id; > >>>>>>> private Set values = new HashSet(); > >>>>>>> @Id > >>>>>>> @GeneratedValue > >>>>>>> @Column(name="PARENT_ID") > >>>>>>> public Long getId() { > >>>>>>> return id; > >>>>>>> } > >>>>>>> public void setId(Long id) { > >>>>>>> this.id = id; > >>>>>>> } > >>>>>>> @ManyToMany(fetch = FetchType.EAGER) > >>>>>>> @JoinTable(name = "PARENT_CHILD", joinColumns = { @JoinColumn(name = > >>>>>>> "PARENT_ID") }, inverseJoinColumns = { @JoinColumn(name = "CHILD_ID") > >>>>>>> }) > >>>>>>> public Set getValues() { > >>>>>>> return values; > >>>>>>> } > >>>>>>> public void setValues(Set lst) { > >>>>>>> values = lst; > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>>> @Entity > >>>>>>> @Table(name="CHILD") > >>>>>>> public class Child { > >>>>>>> private Long id; > >>>>>>> private String name; > >>>>>>> @Id > >>>>>>> @GeneratedValue > >>>>>>> @Column(name="CHILD_ID") > >>>>>>> public Long getId() { > >>>>>>> return id; > >>>>>>> } > >>>>>>> public void setId(Long id) { > >>>>>>> this.id = id; > >>>>>>> } > >>>>>>> @Column(name="NAME") > >>>>>>> public String getName() { > >>>>>>> return name; > >>>>>>> } > >>>>>>> public void setName(String val) { > >>>>>>> name = val; > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>>> public interface ParentDAO { > >>>>>>> public void saveOrUpdateParent(Parent cl); > >>>>>>> public void saveParent(Parent cl); > >>>>>>> public List listParent(); > >>>>>>> public Parent listParentById(Long clId); > >>>>>>> public void deleteParent(Long clId); > >>>>>>> } > >>>>>>> > >>>>>>> public class ParentDAOImpl implements ParentDAO { > >>>>>>> @SessionTarget > >>>>>>> Session session; > >>>>>>> @TransactionTarget > >>>>>>> Transaction transaction; > >>>>>>> > >>>>>>> @Override > >>>>>>> public void saveOrUpdateParent(Parent cl) { > >>>>>>> try { > >>>>>>> session.saveOrUpdate(cl); > >>>>>>> } catch (Exception e) { > >>>>>>> transaction.rollback(); > >>>>>>> e.printStackTrace(); > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>>> @Override > >>>>>>> public void saveParent(Parent cl) { > >>>>>>> try { > >>>>>>> session.save(cl); > >>>>>>> } catch (Exception e) { > >>>>>>> transaction.rollback(); > >>>>>>> e.printStackTrace(); > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>>> @Override > >>>>>>> public void deleteParent(Long clId) { > >>>>>>> try { > >>>>>>> Parent cl = (Parent) session.get(Parent.class, clId); > >>>>>>> session.delete(cl); > >>>>>>> } catch (Exception e) { > >>>>>>> transaction.rollback(); > >>>>>>> e.printStackTrace(); > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>>> @SuppressWarnings("unchecked") > >>>>>>> @Override > >>>>>>> public List listParent() { > >>>>>>> List courses = null; > >>>>>>> try { > >>>>>>> courses = session.createQuery("from Parent").list(); > >>>>>>> } catch (Exception e) { > >>>>>>> e.printStackTrace(); > >>>>>>> } > >>>>>>> return courses; > >>>>>>> } > >>>>>>> > >>>>>>> @Override > >>>>>>> public Parent listParentById(Long clId) { > >>>>>>> Parent cl = null; > >>>>>>> try { > >>>>>>> cl = (Parent) session.get(Parent.class, clId); > >>>>>>> } catch (Exception e) { > >>>>>>> e.printStackTrace(); > >>>>>>> } > >>>>>>> return cl; > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>>> public class ParentAction extends ActionSupport implements > >>>>>>> ModelDriven { > >>>>>>> > >>>>>>> private static final long serialVersionUID = -2662966220408285700L; > >>>>>>> private Parent cl = new Parent(); > >>>>>>> private List clList = new ArrayList(); > >>>>>>> private ParentDAO clDAO = new ParentDAOImpl(); > >>>>>>> > >>>>>>> @Override > >>>>>>> public Parent getModel() { > >>>>>>> return cl; > >>>>>>> } > >>>>>>> > >>>>>>> public String saveOrUpdate() > >>>>>>> { > >>>>>>> clDAO.saveOrUpdateParent(cl); > >>>>>>> return SUCCESS; > >>>>>>> } > >>>>>>> > >>>>>>> public String save() > >>>>>>> { > >>>>>>> clDAO.saveParent(cl); > >>>>>>> return SUCCESS; > >>>>>>> } > >>>>>>> > >>>>>>> public String list() > >>>>>>> { > >>>>>>> clList = clDAO.listParent(); > >>>>>>> return SUCCESS; > >>>>>>> } > >>>>>>> > >>>>>>> public String delete() > >>>>>>> { > >>>>>>> HttpServletRequest request = (HttpServletRequest) > >>>>>>> ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); > >>>>>>> clDAO.deleteParent(Long.parseLong(request.getParameter("id"))); > >>>>>>> return SUCCESS; > >>>>>>> } > >>>>>>> > >>>>>>> public String edit() > >>>>>>> { > >>>>>>> HttpServletRequest request = (HttpServletRequest) > >>>>>>> ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST); > >>>>>>> cl = clDAO.listParentById(Long.parseLong(request.getParameter("id"))); > >>>>>>> return SUCCESS; > >>>>>>> } > >>>>>>> > >>>>>>> public Parent getParent() { > >>>>>>> return cl; > >>>>>>> } > >>>>>>> > >>>>>>> public void setParent(Parent cl) { > >>>>>>> this.cl = cl; > >>>>>>> } > >>>>>>> > >>>>>>> public List getParentList() { > >>>>>>> return clList; > >>>>>>> } > >>>>>>> > >>>>>>> public void setParentList(List clList) { > >>>>>>> this.clList = clList; > >>>>>>> } > >>>>>>> } > >>>>>>> > >>>>>>> and finally the jsp page: > >>>>>>> > >>>>>>> > >>>>>>>>>>>> "http://www.w3.org/TR/html4/loose.dtd"> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >> > >> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >> > >>>>>>> > >> > >>>>>>> > >> > >> > >>>>>>> > >> Child(s) > >>>>>>> > >> > >>>>>>> > >>>>>>>>>>>> class="oddeven"> > >>>>>>> > >> > >> > >>>>>>> > >>>>>>> > >> > >>>>>>> > >>>>>>> > >> > >>>>>>> > >>>>>>> Edit > >>>>>>> > >> > >>>>>>> > >>>>>>> Delete > >>>>>>> > >> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>> > >>>>>> -- > >>>>>> René Gielen > >>>>>> IT-Neering.net > >>>>>> Saarstrasse 100, 52062 Aachen, Germany > >>>>>> Tel: +49-(0)241-4010770 > >>>>>> Fax: +49-(0)241-4010771 > >>>>>> Cel: +49-(0)163-2844164 > >>>>>> http://twitter.com/rgielen > >>>>>> > >>>>>> --------------------------------------------------------------------- > >>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>>>> > >>>>>> > >>>>> > >>>>> --------------------------------------------------------------------- > >>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>>> > >>>> > >>>> -- > >>>> René Gielen > >>>> IT-Neering.net > >>>> Saarstrasse 100, 52062 Aachen, Germany > >>>> Tel: +49-(0)241-4010770 > >>>> Fax: +49-(0)241-4010771 > >>>> Cel: +49-(0)163-2844164 > >>>> http://twitter.com/rgielen > >>>> > >>>> --------------------------------------------------------------------- > >>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >>>> For additional commands, e-mail: user-h...@struts.apache.org > >>>> > >>> > >>> _________________________________________________________________ > >>> Découvrez comment SURFER DISCRETEMENT sur un site de rencontres ! > >>> http://clk.atdmt.com/FRM/go/206608211/direct/01/ > >> _________________________________________________________________ > >> Do you have a story that started on Hotmail? Tell us now > >> http://clk.atdmt.com/UKM/go/195013117/direct/01/ > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > >> For additional commands, e-mail: user-h...@struts.apache.org > >> > > > > _________________________________________________________________ > > Consultez gratuitement vos emails Orange, Gmail, Free, ... directement dans > > HOTMAIL ! > > http://www.windowslive.fr/hotmail/agregation/ > _________________________________________________________________ > Do you have a story that started on Hotmail? Tell us now > http://clk.atdmt.com/UKM/go/195013117/direct/01/ > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > _________________________________________________________________ Consultez gratuitement vos emails Orange, Gmail, Free, ... directement dans HOTMAIL ! http://www.windowslive.fr/hotmail/agregation/