then you have to use a bean, and on confirm apply changes from the bean to the persistent entity. the only other alternative i know of is to use the long conversation pattern which i am not really a fan of.
-igor On Feb 10, 2008 11:25 PM, Martijn Lindhout <[EMAIL PROTECTED]> wrote: > ok, that makes sense. > > But what if I have a Hibernate persisted entity that I want to edit in > multiple actions? Say I have an order with orderlines, and I want to add and > remove them at will, and in the end save or rollback all the changes? I > don't want the intermediate add and removes propagate directly to the > database, only at 'confirm'. > > > 2008/2/9, Igor Vaynberg <[EMAIL PROTECTED]>: > > > > the other constructor i presume is getting a persistent entity? so > > hibernate/jpa will flush state back to db at the end of request, thats > > why that works. > > > > -igor > > > > > > On Feb 9, 2008 11:08 AM, Martijn Lindhout <[EMAIL PROTECTED]> > > wrote: > > > ok, thanx, that seems to work. > > > > > > And what about the other constructor, when editing an existing entity? > > > > > > 2008/2/9, Igor Vaynberg <[EMAIL PROTECTED]>: > > > > > > > > > > > setModel(new CompoundPropertyModel(new LoadableDetachableModel(){ > > > > > > > > ^ that is bad because ldm is cleared between requests, thats why its > > > > called loadable > > > > > > > > just do this > > > > > > > > setModel(new CPM(new Employee())); > > > > > > > > -igor > > > > > > > > > > > > On Feb 9, 2008 10:45 AM, Martijn Lindhout <[EMAIL PROTECTED]> > > > > wrote: > > > > > Hi, > > > > > > > > > > I have a page, with those two constructors, the first for editing a > > new > > > > > employee, the second for editing an existing. > > > > > > > > > > public EditEmployee() { > > > > > setModel(new CompoundPropertyModel(new > > > > LoadableDetachableModel(){ > > > > > protected Object load() { > > > > > return new Employee(); > > > > > } > > > > > })); > > > > > init(); > > > > > } > > > > > > > > > > public EditEmployee(final Long id) { > > > > > setModel(new CompoundPropertyModel(new > > > > LoadableDetachableModel(){ > > > > > protected Object load() { > > > > > return empRepository.getEmployee(id); > > > > > } > > > > > })); > > > > > init(); > > > > > } > > > > > > > > > > Because the Employee info is relatively much, I separate it in two > > > > panels in > > > > > a tabpanel. The hierarchy is: Page <- Form <- TabbedPanel <- several > > > > Panels > > > > > The problem is, that when I enter the formfields on the panels, they > > got > > > > > valided, but then a new Employee instance is created, and the > > > > FormComponent > > > > > values are not copied to the newly instantiated Employee. They're > > null. > > > > > > > > > > I did some tests and it appears that on each panel switch, the > > > > Model.load is > > > > > called, and a new Employee is returned. > > > > > > > > > > What's going wrong here.... > > > > > -- > > > > > Martijn Lindhout > > > > > JointEffort IT Services > > > > > http://www.jointeffort.nl > > > > > [EMAIL PROTECTED] > > > > > +31 (0)6 18 47 25 29 > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > -- > > > > > > Martijn Lindhout > > > JointEffort IT Services > > > http://www.jointeffort.nl > > > [EMAIL PROTECTED] > > > +31 (0)6 18 47 25 29 > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Martijn Lindhout > JointEffort IT Services > http://www.jointeffort.nl > [EMAIL PROTECTED] > +31 (0)6 18 47 25 29 > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]