Product Details
Java Persistence with Hibernate

Java Persistence with Hibernate
By Christian Bauer, Gavin King

List Price: $59.99
Price: $37.79 & eligible for FREE Super Saver Shipping on orders over $25. Details

Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com

50 new or used available from $29.72

Average customer review:

Product Description

Java Persistence with Hibernate is considerably more than simply a second edition to Hibernate in Action. It provides a comprehensive overview of all the capabilities of the Java Persistence API in addition to those of Hibernate 3, as well as a detailed comparative analysis of the two. It describes how Hibernate has been used to implement the Java Persistence standard, and how to leverage the Hibernate extensions to Java Persistence.

-- From the Forward by LINDA DEMICHIEL Specification Lead, Enterprise JavaBeans 3.0 and Java Persistence Sun Microsystems

Persistence, the ability of data to outlive an instance of a program, is central to modern applications. Hibernate, the most popular Java persistence tool, provides automatic and transparent object/relational mapping so it's a snap to work with SQL databases in Java applications. Hibernate conforms to the new EJB 3.0 and Java Persistence 1.0 standards.

Java Persistence with Hibernate explores Hibernate by developing an application that ties together hundreds of individual examples. You'll immediately dig into the rich programming model of Hibernate 3.2 and Java Persistence, working through queries, fetching strategies, caching, transactions, conversations, and more. You'll also appreciate the well-illustrated discussion of best practices in database design, object/relational mapping, and optimization techniques.

In this 2nd edition of Manning's bestselling Hibernate in Action, authors Christian Bauer and Gavin King -- the founder of the Hibernate project -- cover Hibernate 3.2 in detail along with the EJB 3.0 and Java Persistence 1.0 standards.

What's Inside:

--Authoritative source for any developer using Java with SQL databases.
--Covers the latest major Hibernate version in great detail
--Explores the new EJB 3.0 Java Persistence standard.
--Written by the Hibernate founder and project lead.
--Object/relational mapping concepts
--Real-world tasks and examples
--Application design and development processes with ORM


Product Details

  • Amazon Sales Rank: #47072 in Books
  • Published on: 2006-11-24
  • Original language: English
  • Number of items: 1
  • Binding: Paperback
  • 841 pages

Editorial Reviews

From the Publisher
Java Persistence with Hibernate is divided into three major parts.

In Part 1, the book introduces the object/relational paradigm mismatch and explains the fundamentals behind object/relational mapping. Then, readers are walked through a hands-on tutorial to get you started with your first Hibernate, Java Persistence, or EJB 3.0 project. You look at Java application design for domain models and at the options for creating object/relational mapping metadata.

Mapping Java classes and properties to SQL tables and columns is the focus of Part 2. You explore all basic and advanced mapping options in Hibernate and Java Persistence, with XML mapping files and Java annotations. It shows you how to deal with inheritance, collections, and complex class associations. Finally, the book discusses integration with legacy database schemas and some mapping strategies that are especially tricky.

Part 3 is all about the processing of objects and how you can load and store data with Hibernate and Java Persistence. The book introduces the programming interfaces, how to write transactional and conversation-aware applications, and how to write queries. It later focuses on the correct design and implementation of layered Java applications, and the most common design patterns that are used with Hibernate, such as the Data Access Object (DAO) and EJB Command patterns. You'll see how you can test your Hibernate application easily and what other best practices are relevant if you work an object/relational mapping software.

Finally, you are introduced to the JBoss Seam framework, which takes many Hibernate concepts to the next level and enables you to create conversational web applications with ease.

Visit the Manning site for sample chapters, the Author Online Forum, errata and source code for Java Persistence with Hibernate.

About the Author
Christian Bauer is a member of the Hibernate developer team and a trainer, consultant, and product manager for Hibernate, EJB 3.0, and JBoss Seam at JBoss.

Gavin King, a lead developer at JBoss, is the founder of the Hibernate project, and a member of the EJB 3.0 (JSR 220) expert group. He also leads the Web Beans JSR 299, a standardization effort involving Hibernate concepts, JSF, and EJB 3.0.


Customer Reviews

A heavy-weight guide to the light-weight object persistence framework.4
Hibernate is an ambitious project that aims to be a complete solution to the problem of managing persistent data in java. With the most recent version (3.2) out in the wild now, it is better than ever. A whole slew of new features have been added, a bunch of them improved from its earlier incarnation, but to trump it all - hibernate now supports the new EJB 3.0 standard for persistence, named JPA. As a matter of fact, Gavin King, creator of hibernate, was one among the expert group members for that JSR and helped shape its API.

This book aims to be a definitive source of reference for both hibernate and its JPA implementation. The authors undertake an arduous task of explaining each and every detail both in hibernate and JPA parlance. The end result is a comprehensive tutorial/reference guide of both worlds in one well-written and easy-to-read book. Think about this, if your goal is to to learn only hibernate, you have it here, or if all you need is to learn the JPA specification, you got that here too. The most beneficial of all, if you wanted to learn both, compare and contrast them, and make an informed decision of the best approach for your next project, then you are still in the right place. Can this get any better? Keep reading.

With a whopping 850+ pages, this book has loads of information for a reader at any experience level. The entire subject area is broadly organized into 3 parts.

Part 1: Getting started with Hibernate and JPA
Part 2: Mapping concepts and strategies
Part 3: Conversational object processing

Part 1 introduces you to the object/relational paradigm mismatch - both structural and conceptual aspects. Then, we are taken through a tour of how to start a new hibernate project. The authors then lay-out the types of projects that will benefit from ORM and those that wont. Based on the conclusion that the projects with rich domain model will best benefit from ORM, we are then briefly introduced to the art of creating rich domain models using an example application (Caveat Emptor). This example application will be used throughout the rest of the book to explain various concepts and strategies.

Part 2 is largely about the most important concept of hibernate - mapping classes to tables. Starting with the simplest scenario, the authors discuss every possible use-case that may present itself in a data-driven application and provide a mapping solution for the same. One-to-One, One-to-Many, Many-to-One, Many-to-Many, Inheritance mapping, component mapping, mapping collections of components and many more are discussed in detail, along with recommendations on which one to use when. The authors also discuss the pitfalls when taking a bottom-up approach and its solutions. Every chapter explains the mapping meta-data in all 3 formats - hibernate XML, JPA XML and JPA annotations. Since JPA has some limitations, every possible limitation is pointed out and ways to get back to native hibernate to achieve the same effect is discussed.

Part 3 is a complete tutorial on the API for storing and retrieving objects. The authors start with the basics of how to persist, retrieve, query etc., and proceed by dedicating entire chapters for every advanced concept. Transactions & Concurrency, Implementing Conversations, Modifying objects efficiently, Retrieving objects using query and criteria api all receive their own chapters. Every chapter explains the API in both native hibernate as well as JPA parlance. Whenever a JPA limitation is encountered, the authors show the best fall-back strategy to native hibernate.

Towards the end, the authors briefly show us the art and science of writing layered applications with hibernate. As an added bonus, we also get a primer into JBoss Seam, which solves many problems related to writing layered applications using the now famous EJB 3.0 specification. Two appendices, one explaining the fundamentals of SQL and the other acting as a reference for mapping concepts are also very useful.

The authors are very ambitious in trying to cover all the features of both Hibernate 3.x and JPA specification. This is an arduous task and kudos for just aiming for that level of comprehensiveness. Praises aside, i am not very impressed with the ad-hoc approach taken to explain both these giants side-by-side. Some chapters clearly separate hibernate and JPA sections, whereas some chapters entangle them into a mess. I personally preferred the chapters that clearly separated these sections. That gives me the choice, as a reader, to select one or the other, and to focus on my choice. But for some reason, most chapters chose to discuss them in an entangled fashion leaving me more confused than i was before the start.

I was expecting at least a primer on Hibernate/Lucene integration, but the authors chose to safely eliminate the topic, probably because the feature is still in its infancy. Also, it was strange that there was no trace of spring framework anywhere in the book, knowing for a fact that spring has a lot to offer to any ORM implementation.

Though there is room for improvement, there is currently no match for this book in terms of the coverage offered. Explanations are lucid, examples are excellent, and the author's ability to foresee the next questions in the reader's mind and address them immediately is fabulous .

I highly recommend this book
- For those who are interested in learning hibernate 3.x and JPA specification
- For those who crave practical advices for real-world scenarios
- For those who wish to choose between native hibernate and JPA, based on facts, not just techno-babble

In case you are wondering what i chose, i chose native hibernate.

Is it really this hard ?2
I feel a little odd rating this thing as low as two stars. After all, it does pack a lot of information into its 800+ pages. And that does make it a single point of reference ... sort of.

It's when I actually tried to use this fat tome to learn how to work with Hibernate that I encountered the first problem. I can't recommend that approach. This book is a terrible way to learn how to use Hibernate. It talks endlessly about all kinds of detail about everything you might want to do, and even provides many incomplete code snippets. But surprisingly it doesn't sit you down and walk you through a simple application actually using Hibernate. The authors do provide a full-blown application you can download and work through - but that won't be easy, dear reader, and it will take you a while to distill the basics from the advanced usage.

This seems to be a problem with most Hibernate books, for some reason - they all think they need to explain ORM to the world rather than simply show how to create an application. Explaining ORM AND showing how to build an application might be better.

So, OK, perhaps, I thought, this will become my master reference. Then I encountered the second problem. There's no good way to drill quickly to a nugget of information you need, which, after all, is the essence of a reference. Instead you will have to read through the theoretical explanations and design discussions to figure out if the trail leads you to the specific nugget you need to get your software working.

In the end I realized that the book is not good as a tutorial and not good as a reference and I was left to wonder what it might be good for. This surprised me, to be honest.

As far as I am aware, no practical Hibernate book has been written, so it would be unfair to single out this one. (The Manning book, Hibernate Quickly, is simply incorrect at too many points - you have to figure out the coding and config errors.) So I'm not singling out this one. However, in my view the praise for this book is directed at the terrific work done by the authors in creating and maintaining Hibernate rather than their work on this book. Their work in this book is unfocused and, while comprehensive and correct, ultimately difficult to use for any practical purpose.

If you want to learn how to use Hibernate, the best way I know is to work with some of the tutorials available on the Web or to download an app server and follow their documentation. You might not learn about "theta-style joins", but you will certainly learn to use Hibernate to create software much more quickly that way than by using this book.

Deep as a Bible, Heavy as a Bible, Boring as a Bible4
Technically speaking you cannot get much better than this. Java Persistence with Hibernate is accurate, complete, detailed, and full of practical examples. I know this expression is overused but this is really the definite reference, the Bible of Hibernate. Basically any rasonable question you might have about how to use this wonderful persistence tool is in this book.
My only gripe is that while this book makes a great reference or a great aid to the experienced developer to bring his hibernate skills to the best level, it fails miserably when used to learn Hibernate from scratch. It's a pity because with a little more effort this could have been the perfect Hibernate book. In particular, 90 % of the example code is from the 'Caveat Emptor' hibernate reference application. Perfectly nice to the veteran developer, but a beginner needs to see the code in action immediately, and building and analyzing 'Caveat Emptor' or translate the original code into his own 'experiments' will probably be way out of his reach. Finally, the writing style is lofty, self-conceited and abysmally boring, and fails to point out what is important from the (almost always) irrelevant details. This being said, Hibernate Foundations are all in this book, which makes a real treasure trove for a senior developer who has already fought a few battles with Hibernate. A good Hibernate intro book has still to be written, so my only advice to the newbie is try some online tutorials, maybe browse the hibernate official website, find something more 'human-friendly' and 'New-Testament-like' , get to play with Hibernate a little, to the point where you can write a very simple, even rudimentary application, and then you will be ready to start wrestling with this bible.