GithubHelp home page GithubHelp logo

dozer-model's Introduction

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

dozer-model's People

Contributors

driesschulten avatar christianhersevoort avatar ricktebrake avatar

Stargazers

Andrea Del Bene avatar Adriano Machado avatar  avatar jinuc avatar Mihai Postelnicu avatar Rens Verhage avatar  avatar Jeroen van Dijk avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.