Harnessing hibernate - a step-by-step guide to Java persistence. - James Elliott; Ryan Fowler; Timothy M. O'Brien (O'Reilly, 2008)