I really have mixed feelings about this book: the author is definitely well versed on the subject, but his english and presentation style leave much to be desired. A little more attention ( and editing ) would have done much to make this book more readable and easier to go through. The author also shares the typical defect of researchers and scientist: not being able to discern the hard from the easy and the important from the futile, presenting all material with the same level of detail and a general dullness in the presentation style. This book does have some strong point though: it touches all aspects of JPA programming in decent detail, does not shy away from what other book consider "advanced material beyond the scope of this book" and tried to do that in a pragmatic way. Example code need a lot of work anyhow, it's given basically as a bunch of poorly organized java source files and will require quite some sweat to be put to work. Nothing that can't be done, but if I spend money on a book I expect the source code to be better organized and ready to run, at a minimum with an ant script, if it's a book on java technology. The part of concurrency and locking if far from clear and detailed enough, but unfortunately that is an evil common to all JPA books I have seen. To sum it up, this is a decent book if you have the patience to go through the example code and organize it with ant scripts or and ide to make it run on you application server of choice, but it won't be a good choice for a real beginner in JPA and J2EE technology, and a generally dull and boring read for everyone.
I do have the disturbing feeling that many of the 5 star reviewers of this text are actually friends/colleagues of the author...
This is far from a 5 star book , it's a decent text which could have been great with a little more effort and attention to the example code and presentation style...
If you have time, budget or space only for a single book on JPA I think that the best one is still
Pro JPA 2: Mastering the Java™ Persistence API (Expert's Voice in Java Technology)
though even this one is far, very far from perfect..