sounds interesting. Can you explain a bit more? How does this work for
example in an Order-OrderLine situation where you edit an existing order by
adding and removing orderlines and finally do a commit or rollback?
2008/2/11, Scott Swank <[EMAIL PROTECTED]>:
>
> I suggest using the GoF memento pattern here. You keep your changes
> in one or more mementos, which can be kept in the session. Then you
> push the changes back to the domain model when you are happy with
> them. We use this approach for modifying hotel reservations --
> particularly because we need to see the price before the change as
> well as with the change to generate e-mails, faxes, etc.
>
>
> On Feb 11, 2008 10:06 AM, Martijn Lindhout <[EMAIL PROTECTED]>
> wrote:
> > I agree that it is *easier*, but I got bored by duplicating my domain
> model
> > in a DTO like structure. And that's cumbersome.
> > I saw this hapening in several projects, and in the end we had two
> almost
> > equals object structures, one with rich behavior, and one with just data
> and
> > structure.
> >
> > that's sad.... or not?
> >
> >
> > 2008/2/11, Igor Vaynberg <[EMAIL PROTECTED]>:
> > >
> > > well, you will have to disconnect the hibernate session, and store it
> > > in the http session - or some other place. then your model would have
> > > to reconnect the session and pull the entity out of it. its much
> > > easier to create a bean imho.
> > >
> > > -igor
> > >
> > >
> > > On Feb 11, 2008 12:13 AM, Martijn Lindhout <[EMAIL PROTECTED]>
> > > wrote:
> > > > because I use the domain objects directly,. without any DTO's, I
> have to
> > > use
> > > > the long conversation pattern. That means I have to store the domain
> > > object
> > > > somewhere in the session and let the loadabledetachable model
> retrieve
> > > it
> > > > from there?
> > > >
> > > > 2008/2/11, Igor Vaynberg <[EMAIL PROTECTED]>:
> > > >
> > > > >
> > > > > 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]
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > 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
> >
>
>
>
> --
> Scott Swank
> reformed mathematician
>
> ---------------------------------------------------------------------
> 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