Member Menu
 
 Monthly JBoss newsletter:
 
Java Persistence with Hibernate
CaveatEmptor
«   HMLCA

Hibernate Feature List

Enterprise (JEE) integration   »

Performance

Lazy initialization

  • for collections
  • for entity objects (uses runtime bytecode enhancement - no need to implement interfaces)

Outer join fetching

to initialize a graph of associated objects in a single select (for databases with ANSI-style or Oracle-style outerjoins)

Batch fetching

Association roles may be fetched predictively, by batch

Subselect fetching

Collections may be fetched efficiently using a subselect

Support for optimistic locking with versioning/timestamping

Allows a single conversation (Session) to extend across multiple database connections / transactions without sacrificing transaction isolation. Version numbers / timestamps are updated automatically by Hibernate.

Highly scalable architecture

Designed from the ground up to work in a cluster. Unless the second-level cache is used, there is essentially NO synchronization used in the entire persistence layer. Transaction isolation is guaranteed by the way Hibernate integrates with database / JTA transactions.

High performance

Minimal overhead compared to direct JDBC.

SQL generated at system initialization time

rather than at runtime (or buildtime)

Transactional write-behind, and transparent JDBC batching

Since Hibernate executes SQL asynchrously, it is able to transparently make use of the JDBC batch update API for insert, update and delete

Optional "tuned" INSERT and UPDATE

INSERT and UPDATE SQL may be generated dynamically, including only those columns that are needed

Property level lazy fetching via build-time bytecode instrumentation

(Buildtime bytecode instrumentation is fully optional, and almost never necessary)

Support for update by ROWID on Oracle

Built-in support for various powerful open source JDBC connection pools and cache implementations

Including C3P0, Proxool, JBossCache, EHCache, OSCache, SwarmCache

[Hibernate 3.1] Stateless session API for bulk/batch processing

Allows streaming inserts or updates of large datasets

© Copyright 2006, Red Hat Middleware, LLC. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc. [Privacy Policy]