注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计JAVA及其相关Hibernate实战(第2版·英文版)

Hibernate实战(第2版·英文版)

Hibernate实战(第2版·英文版)

定 价:¥89.00

作 者: (德)鲍尔,(澳)金 著
出版社: 人民邮电出版社
丛编项: 图灵程序设计丛书
标 签: Hibernate

购买这本书可以去


ISBN: 9787115160614 出版时间: 2007-06-01 包装: 胶版纸
开本: 16开 页数: 825 字数:  

内容简介

  持久化是现代企业级应用的核心特性。作为Java世界最流行的持久化框架,Hibernate已经成为开发Java EE应用系统中不可替代的支柱之一。随着EJB 3.0和Java Persistence标准的发布,Hibernate也迎来了更加成熟的新版本——Hibernate 3.2。新版本实现了Java Persistence标准,既可以用于流行的开源技术组合(如Spring、Struts和Seam等),也可以与其他EJB 3.0组件和Java EE服务集成。.本书是毋庸置疑的Hibernate和ORM(对象/关系映射)权威著作的最新版本,由包括Hibernate之父在内的两位核心开发人员亲自执笔,详细讲述了Hibernate 3.2、Java Persistence 和EJB 3.0标准。..本书通过一个应用将数百个例子融合起来,不仅深入剖析了Hibernate 3.2和Java Persistence丰富的编程模型,还深刻阐述了数据库设计、ORM和优化等方面的基本原则、策略和最佳实践。书中处处闪烁着作者超凡的真知灼见,将大大升华读者对ORM乃至企业级应用开发的理解。...

作者简介

  本书提供作译者介绍Gavin KingHibernate项目的创始人和主要开发人员,目前是Red Hat公司Hibernate和Seam项目的负责人。他还是EJB 3.0 (JSR 220)专家组成员,对Java Persistence标准以及整个EJB 3.0标准的制定都产生了巨大影响。他还是雄心勃勃的Web Beans JSR 299标准项目的负责人,该标准旨在将JSF受管理beans组件模型与EJB 3.0组件模型统一起来。Gavin出生于澳大利亚,现居墨尔本和美国亚特兰大。...

图书目录

Part1 Getting started with Hibernate and EJB 3.0 
1 Understanding object/relational persistence 
1.1 What is persistence?
 Relational databases 
 Understanding SQL 
 Using SQL in Java 
 Persistence in object-oriented applications
1.2 The paradigm mismatch 
 The problem of granularity 
 The problem of subtypes 
 The problem of identity 
 Problems relating to associations
 The problem of data navigation 
  The cost of the mismatch 
1.3 Persistence layers and alternatives
 Layered architecture
 Hand-coding a persistence layer with SQL/JDBC 
 Using serialization 
 Object-oriented database systems 
 Other options 
1.4 Object/relational mapping 
 What is ORM? 
 Generic ORM problems 
 Why ORM? 
 Introducing Hibernate, EJB3, and JPA 
1.5 Summary 
2 Starting a project 
2.1 Starting a Hibernate project 
 Selecting a development process 
 Setting up the project 
 Hibernate configuration and startup 
 Running and testing the application
2.2 Starting a Java Persistence project
 Using Hibernate Annotations
 Using Hibernate EntityManager 
 Introducing EJB components 
 Switching to Hibernate interfaces 
2.3 Reverse engineering a legacy database
 Creating a database configuration
 Customizing reverse engineering
 Generating Java source code 
2.4 Integration with Java EE services
 Integration with JTA 
 JNDI-bound SessionFactory 
 JMX service deployment 
2.5 Summary 
3 Domain models and metadata 
3.1 The CaveatEmptor application 
 Analyzing the business domain 
 The CaveatEmptor domain model 
3.2 Implementing the domain model
 Addressing leakage of concerns 
 Transparent and automated persistence
 Writing POJOs and persistent entity classes 
 Implementing POJO associations 
 Adding logic to accessor methods 
3.3 Object/relational mapping metadata 
 Metadata in XML 
 Annotation-based metadata 
 Using XDoclet 
 Handling global metadata 
 Manipulating metadata at runtime 
3.4 Alternative entity representation
 Creating dynamic applications 
 Representing data in XML 
3.5 Summary 
Part 2 Mapping concepts and strategies 
4 Mapping persistent classes 
4.1 Understanding entities and value types
 Fine-grained domain models 
 Defining the concept 
 Identifying entities and value types 
4.2 Mapping entities with identity 
 Understanding Java identity and equality 
 Handling database identity 
 Database primary keys 
4.3 Class mapping options 
 Dynamic SQL generation
 Making an entity immutable 
 Naming entities for querying 
 Declaring a package name 
 Quoting SQL identifiers 
 Implementing naming conventions 
4.4 Fine-grained models and mappings
 Mapping basic properties 
 Mapping components
4.5 Summary
5 Inheritance and custom types 
5.1 Mapping class inheritance
 Table per concrete class with implicit polymorphism
 Table per concrete class with unions
 Table per class hierarchy 
 Table per subclass
 Mixing inheritance strategies 
 Choosing a strategy 
5.2 The Hibernate type system
 Recapitulating entity and value types 
 Built-in mapping types 
 Using mapping types 
5.3 Creating custom mapping types 
 Considering custom mapping types 
 The extension points
 The case for custom mapping types 
 Creating a UserType
 Creating a CompositeUserType
 Parameterizing custom types 
 Mapping enumerations
5.4 Summary
6 Mapping collections and entity associations 
6.1 Sets, bags, lists, and maps of value types 
 Selecting a collection interface
 Mapping a set 
 Mapping an identifier bag
 Mapping a list 
 Mapping a map 
 Sorted and ordered collections 
6.2 Collections of components 
 Writing the component class 
 Mapping the collection 
 Enabling bidirectional navigation
 Avoiding not-null columns
6.3 Mapping collections with annotations 
 Basic collection mapping 
 Sorted and ordered collections
 Mapping a collection of embedded objects
6.4 Mapping a parent/children relationship 
 Multiplicity 
 The simplest possible association 
 Making the association bidirectional 
 Cascading object state 
6.5 Summary 
7 Advanced entity association mappings
7.1 Single-valued entity associations
 Shared primary key associations 
 One-to-one foreign key associations 
 Mapping with a join table 
7.2 Many-valued entity associations 
 One-to-many associations 
 Many-to-many associations 
 Adding columns to join tables
 Mapping maps 
7.3 Polymorphic associations 
 Polymorphic many-to-one associations 
 Polymorphic collections 
 Polymorphic associations to unions
 Polymorphic table per concrete class
7.4 Summary
8 Legacy databases and custom SQL 
8.1 Integrating legacy databases
 Handling primary keys 
 Arbitrary join conditions with formulas
 Joining arbitrary tables 
 Working with triggers 
8.2 Customizing SQL 
 Writing custom CRUD statements 
 Integrating stored procedures and functions
8.3 Improving schema DDL 
 Custom SQL names and datatypes
 Ensuring data consistency
 Adding domains and column constraints
 Table-level constraints 
 Database constraints
 Creating indexes 
 Adding auxiliary DDL 
8.4 Summary 
Part 3 Conversational object processing
9 Working with objects 
9.1 The persistence lifecycle 
 Object states
 The persistence context
9.2 Object identity and equality 
 Introducing conversations 
 The scope of object identity 
 The identity of detached objects 
 Extending a persistence context 
9.3 The Hibernate interfaces
 Storing and loading objects 
 Working with detached objects
 Managing the persistence context
9.4 The Java Persistence API 
 Storing and loading objects 
 Working with detached entity instances 
9.5 Using Java Persistence in EJB components
 Injecting an EntityManager 
 Looking up an EntityManager 
 Accessing an EntityManagerFactory 
9.6 Summary 
10 Transactions and concurrency 
10.1 Transaction essentials 
 Database and system transactions
 Transactions in a Hibernate application
 Transactions with Java Persistence 
10.2 Controlling concurrent access
 Understanding database-level concurrency
 Optimistic concurrency control 
 Obtaining additional isolation guarantees
10.3 Nontransactional data access 
 Debunking autocommit myths 
 Working nontransactionally with Hibernate
 Optional transactions with JTA 
10.4 Summary 
11 Implementing conversations 
11.1 Propagating the Hibernate Session
 The use case for Session propagation
 Propagation through thread-local
 Propagation with JTA 
 Propagation with EJBs 
11.2 Conversations with Hibernate 
 Providing conversational guarantees 
 Conversations with detached objects 
 Extending a Session for a conversation 
11.3 Conversations with JPA 
 Persistence context propagation in Java SE 
 Merging detached objects in conversations 
 Extending the persistence context in Java SE 
11.4 Conversations with EJB 3.0 
 Context propagation with EJBs 
 Extended persistence contexts with EJBs 
11.5 Summary 
12 Modifying objects efficiently 
12.1 Transitive persistence 
Persistence by reachability 
 Applying cascading to associations 
 Working with transitive state 
 Transitive associations with JPA 
12.2 Bulk and batch operations 
 Bulk statements with HQL and JPA QL 
 Processing with batches 
 Using a stateless Session 
12.3 Data filtering and interception
 Dynamic data filters
 Intercepting Hibernate events
 The core event system 
 Entity listeners and callbacks
12.4 Summary 
13 Optimizing fetching and caching 
13.1 Defining the global fetch plan 
 The object-retrieval options 
 The lazy default fetch plan 
 Understanding proxies 
 Disabling proxy generation 
 Eager loading of associations and collections 
 Lazy loading with interception 
13.2 Selecting a fetch strategy 
 Prefetching data in batches 
 Prefetching collections with subselects
 Eager fetching with joins 
 Optimizing fetching for secondary tables
 Optimization guidelines 
13.3 Caching fundamentals 
 Caching strategies and scopes 
 The Hibernate cache architecture 
13.4 Caching in practice 
 Selecting a concurrency control strategy 
 Understanding cache regions 
 Setting up a local cache provider
 Setting up a replicated cache 
 Controlling the second-level cache 
13.5 Summary
14 Querying with HQL and JPA QL 
14.1 Creating and running queries 
 Preparing a query
 Executing a query
 Using named queries
14.2 Basic HQL and JPA QL queries
 Selection 
 Restriction
 Projection
14.3 Joins, reporting queries, and subselects 
 Joining relations and associations 
 Reporting queries 
 Using subselects 
14.4 Summary 
15 Advanced query options 
15.1 Querying with criteria and example 
 Basic criteria queries 
 Joins and dynamic fetching
 Projection and report queries 
 Query by example 
15.2 Using native SQL queries
 Automatic resultset handling 
 Retrieving scalar values 
 Native SQL in Java Persistence
15.3 Filtering collections 
15.4 Caching query results 
 Enabling the query result cache
 Understanding the query cache
 When to use the query cache 
 Natural identifier cache lookups
15.5 Summary 
16 Creating and testing layered applications
16.1 Hibernate in a web application 
 Introducing the use case 
 Writing a controller 
 The Open Session in View pattern
 Designing smart domain models 
16.2 Creating a persistence layer 
 A generic data-access object pattern 
 Implementing the generic CRUD interface
 Implementing entity DAOs 
 Using data-access objects 
16.3 Introducing the Command pattern 
 The basic interfaces
 Executing command objects
 Variations of the Command pattern 
16.4 Designing applications with EJB 3.0
 Implementing a conversation with stateful beans 
 Writing DAOs with EJBs 
 Utilizing dependency injection 
16.5 Testing 
 Understanding different kinds of tests
 Introducing TestNG 
 Testing the persistence layer 
 Considering performance benchmarks 
16.6 Summary 
17 Introducing JBoss Seam 
17.1 The Java EE 5.0 programming model
 Considering JavaServer Faces
 Considering EJB 3.0
 Writing a web application with JSF and EJB 3.0
 Analyzing the application
17.2 Improving the application with Seam 
 Configuring Seam 
 Binding pages to stateful Seam components
 Analyzing the Seam application 
17.3 Understanding contextual components 
 Writing the login page
 Creating the components 
 Aliasing contextual variables 
 Completing the login/logout feature 
17.4 Validating user input 
 Introducing Hibernate Validator
 Creating the registration page 
 Internationalization with Seam 
17.5 Simplifying persistence with Seam 
 Implementing a conversation 
 Letting Seam manage the persistence context 
17.6 Summary 
appendix A SQL fundamentals 
appendix B Mapping quick reference 
references 
index

本目录推荐