REVIEW - Beginning Hibernate - From Novice to Professional


Beginning Hibernate

From Novice to Professional


Dave Minter, Jeff Linwood


Apress (2006)




Andrew Marlow


December 2009



Recommended with reservations

The contents appears at first glance to promise coverage that will take the reader from novice to professional. It starts with an introduction (mentioning the purpose behind ORM tools), configuring hibernate, a simple application, persistence lifecyle, mapping (both via mapping files and via annotations), sessions and searches. There are a number of appendices covering advanced features (e.g. hand-rolled SQL, invoking stored procedures), tools (ant and eclipse), spring, and upgrading from hibernate 2.

Although the table of contents looks promising, appearances can be deceptive. The book does not take the reader from novice to professional in the way you would think. Instead of an initial shallow overview that covers the essential topics at a novice level, followed by covering the topics in greater depth in later chapters, each topic is covered completely before it moves onto the next one. This does mean everything is covered, and in enough depth to convey the level of professional knowledge it promises. However, it is very difficult for the novice. For example, the first complete working program simply saves a POJO. That program is not built on later, as you might expect. The reader does not see how a table is queried until chapter 9 (searches and queries) which is two thirds of the way into the book. This accounts for my recommendation but with reservations.

The failure to cover all the fundamental relational database tasks (create, read, update, delete, transactions) at a novice level, and then refine them in further chapters, is quite a failing. It is not necessary for every book to take this approach but it is particularly useful for a database book to do so. You rarely perform just one of these tasks in isolation. Hence, you would expect it of a book that is subtitled "from novice to professional". This flawed approach shows in several ways. For example, it is a long time before enough knowledge is built up for the reader to be able to create a realistic hibernate program at all. The examples focus on the micro-detail leaving the reader in the dark for the bigger picture. Also such detail can be overwhelming for the beginner.

The division between the main text and the appendices seems a bit strange. Why bother having an appendix on moving from hibernate 2 to 3? Anyone that wants to move from 2 to 3 will already have most of the knowledge covered by the book and they would not buy the book just for this appendix. Also, why relegate hibernate and spring to an appendix? These are often used together. Generating the schema from the mapping files get insufficient coverage in the main text. The reader is only shown how to run the generation from ant in an appendix.

There is lots of example code, but the detail obscures how hibernate would be used at a strategic level in a project. For example, transactions are covered (in the sessions chapter) but there are no examples of how a business level operation that involves more than one table would have to use a transaction to ensure consistency (the @transacational annotation is not covered either).

Having said all that, the book does contain alot of useful information, and each idea is presented in a reasonably clear and helpful way. Also, it is succinct and avoids the distracting chatty style that seems to be so common these days. I found this book better than other Hibernate books I have seen. However, a novice would probably have to read the book twice to get the best from it. This is because of they way it covers each topic completely before moving to the next one and also due to the succinct presentation.

I am waiting to see a better hibernate book than this one, but for the time being, this will have to suffice as the best one I've seen. It would be even better if it had a more accurate title, it is not really suitable for beginners.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept All Cookies" you agree ACCU can store cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

By clicking "Share IP Address" you agree ACCU can forward your IP address to third-party sites to enhance the information presented on the site, and that these sites may store cookies on your device.