mpostelnicu / dozer-model

Wicket framework stateful Hibernate model.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dozer Wicket Hibernate model

The Dozer Wicket Hibernate model is a Wicket IModel implementation to wrap a Hibernate object and keeping its changed values for several requests (instead of a simple LDM which re-loads a object from the database when re-attaching). To avoid serializing Hibernate proxies the model detaches any unintialized Hibernate proxies (they are replaced with custom HibernateProxy instances) that are re-attached when invoking a method on the proxy again, already initialized Hibernate proxies are deproxied.

The model also supports non-Hibernate objects, when detaching such an object it will check it for any references to Hibernate objects and detach them.

Multiple Hibernate factories for different databased are also supported, the SessionFinder interface is given the current object class as type. Based on this type the correct Hibernate session can be returned by the user.

Details

In the onDetach of the model the object tree is traversed, when a Hibernate proxy is encountered its checked if it is initialized, if so the object is deproxied. When an object is unintialized a Javassit proxy is generated and put in place of the original value. When the proxy gets invoked its original value is attached using internal Hibernate API's and our 'own' proxy is replaced by the Hibernate proxy.

Usage

Prerequisites

  • Java 7
  • Wicket 6.x.x
  • Hibernate 4.2.x (only 4.2.x supported since it uses internal Hibernate API's for re-attaching, for 4.1.x see version 0.3.2)

Creation:

  • Set a implementation of the SessionFinder interface in the static SessionFinderHolder object
  • DozerModel for a normal model
  • DozerListModel list model version (maintains a list of DozerModel objects)

Maven repo

About

Wicket framework stateful Hibernate model.


Languages

Language:Java 100.0%