Java Persistence with Hibernate (Hardcover)

Christian Bauer, Gavin King

  • 出版商: Manning
  • 出版日期: 2006-12-01
  • 售價: $2,320
  • 貴賓價: 9.5$2,204
  • 語言: 英文
  • 頁數: 904
  • 裝訂: Paperback
  • ISBN: 1932394885
  • ISBN-13: 9781932394887
  • 相關分類: Java 相關技術Java 程式語言
  • 已絕版
    無現貨庫存(No stock available)





"I wholeheartedly recommend this book!"
-- Stuart Caborn, Consultant, Thoughtworks

"A definitive source on Hibernate. Great for any developer."
-- Patrick Peak, CTO, BrowserMedia, Author of Hibernate Quickly

"Great topic, great content, and there is a great need for this book!"
-- Ryan Daigle, Lead Engineer, RTP Region, ALTERthought

"... very thorough, very complete. I highly recommend it."
-- Patrick Dennis, Java Developer Management Dynamics Inc.

"A must-read for developers using Hibernate."
-- Dan Dobrin, Principal Consultant, BEA Systems

"It's the best book out there about Hibernate (and there are quite a few on the market right now), maybe even the best book about ORM in Java, in general."
-- Adrian Spinei, Real Life, beta version

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 revised 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.


Table of Contents

foreword to t he revised edition xix
foreword to the first edition xxi
preface to the revised edition xxiii
preface to the first edition xxv
acknowledgments xxviii
about this book xxix
about the cover illustration xxxiii

Part 1 Getting started with Hibernate and EJB 3.0 1

Chapter 1 Understanding object/relational persistence 3
What is persistence? 5
The paradigm mismatch 10
Persistence layers and alternatives 20
Object/relational mapping 24
Summary 35
Chapter 2 Starting a project 37
Starting a Hibernate project 38
Starting a Java Persistence project 68
Reverse engineering a legacy database 88
Integration with Java EE services 96
Summary 104
Chapter 3 Domain models and metadata 105
The CaveatEmptor application 106
Implementing the domain model 110
Object/relational mapping metadata 123
Alternative entity representation 140
Summary 152

Part 2 Mapping concepts and strategies 155

Chapter 4 Mapping persistent classes 157
Understanding entities and value types 158
Mapping entities with identity 161
Class mapping options 171
Fine-grained models and mappings 177
Summary 189
Chapter 5 Inheritance and custom types 191
Mapping class inheritance 192
The Hibernate type system 212
Creating custom mapping types 220
Summary 239
Chapter 6 Mapping collections and entity associations 240
Sets, bags, lists, and maps of value types 241
Collections of components 251
Mapping collections with annotations 256
Mapping a parent/children relationship 260
Summary 275
Chapter 7 Advanced entity association mappings 277
Single-valued entity associations 278
Many-valued entity associations 290
Polymorphic associations 313
Summary 321
Chapter 8 Legacy databases and custom SQL 322
Integrating legacy databases 323
Customizing SQL 350
Improving schema DDL 364
Summary 378

Part 3 Conversational object processing 381

Chapter 9 Working with objects 383
The persistence lifecycle 384
Object identity and equality 391
The Hibernate interfaces 401
The Java Persistence API 417
Using Java Persistence in EJB components 426
Summary 431
Chapter 10 Transactions and concurrency 433
Transaction essentials 434
Controlling concurrent access 453
Nontransactional data access 469
Summary 474
Chapter 11 Implementing conversations 476
Propagating the Hibernate Session 477
Conversations with Hibernate 485
Conversations with JPA 497
Conversations with EJB 3.0 506
Summary 515
Chapter 12 Modifying objects efficiently 517
Transitive persistence 518
Bulk and batch operations 532
Data filtering and interception 540
Summary 558
Chaoter 13 Optimizing fetching and caching 559
Defining the global fetch plan 560
Selecting a fetch strategy 573
Caching fundamentals 592
Caching in practice 602
Summary 612
Chapter 14 Querying with HQL and JPA QL 614
Creating and running queries 615
Basic HQL and JPA QL queries 633
Joins, reporting queries, and subselects 643
Summary 662
Chapter 15 Advanced query options 663
Querying with criteria and example 664
Using native SQL queries 683
Filtering collections 688
Caching query results 691
Summary 695
Chapter 16 Creating and testing layered applications 697
Hibernate in a web application 698
Creating a persistence layer 708
Introducing the Command pattern 718
Designing applications with EJB 3.0 725
Testing 730
Summary 746
Chapter 17 Introducing JBoss Seam 747
The Java EE 5.0 programming model 748
Improving the application with Seam 765
Understanding contextual components 779
Validating user input 789
Simplifying persistence with Seam 803
Summary 816

appendix A SQL fundamentals 818
appendix B Mapping quick reference 822
references 824
index 825 1