Thomas,

Thanks for the info.

The domain objects not being serializable is certainly a valid option.

To return to my original point, even this does not completely solve the
issue with unintended serialization. Sure, you are going to get a
serialization exception but this is a runtime error (hidden in the logs if
I recall correctly) - much more cumbersome from the programmer's point of
view compared to getting immediate visual feedback in the IDE or a compiler
error.

Also with view models you may end up again serializing a view model
unintentionally. Granted this is usually not as bad, but still...

The IntelliJ option seems to do what I want. Unfortunately we use eclipse
and I wasn't able to find an equivalent option.

Cheers
Marios



On Sun, Aug 4, 2019 at 1:07 PM Thomas Heigl <tho...@umschalt.com> wrote:

> >
> > Would you mind to elaborate on this a bit? What do you do in your forms?
> > How do you handle state there? Do you use view models that are
> > serializable? Do you keep state in local variables and propagate it to
> the
> > domain object in every request after it is reloaded?
>
>
> Sure.
>
> We use DTOs/View Models for most of our forms. We started out with
> manipulating domain objects directly, but it caused too many headaches with
> serialization and detaching/re-attaching entities etc.
> Domain objects are only used as Wicket (loadable detachable) models when
> the manipulation is just a single step that can be persisted to the DB
> right away. Your ajax link is a good example. Also single-page forms where
> the final "Save/Next" button persists the changes to the DB. Whenever we
> have a multi-step process (like a wizard) for creating or editing domain
> objects, we use custom view models.
>
> Thomas
>
> On Sun, Aug 4, 2019 at 11:53 AM mscoon <msc...@gmail.com> wrote:
>
> > Hi,
> >
> > If you don't mind me following up on your comment...
> >
> >
> > > Personally, I rarely encounter serialization issues. None of our domain
> > > objects implement Serializable. They can only be used with
> > > LoadableDetachableModels that only store the identifier.
> > >
> > >>
> > >>
> > Would you mind to elaborate on this a bit? What do you do in your forms?
> > How do you handle state there? Do you use view models that are
> > serializable? Do you keep state in local variables and propagate it to
> the
> > domain object in every request after it is reloaded?
> >
> > We often use serializable domain objects so that keeping state on the
> > object is simple. For example if you have an ajax link that increments a
> > property of the domain object, you simply increment the property and rely
> > on the object being serialized for keeping state.
> >
> > Cheers
> > Marios
> >
>

Reply via email to