Member Menu
 
 Monthly JBoss newsletter:
 
Hibernate Books
CaveatEmptor
«   Metadata Facilities

Hibernate Feature List

Performance   »

HMLCA

Threadsafeness

Each session works with its own distinct set of persistent instances

Non-blocking data access

Hibernate never forces threads to wait for each other (the database itself might)

Session level cache

A session-level cache resolves circular/shared references and repeated requests for the same instance in a particular session. The cache is completely safe for use in a clustered environment or where Hibernate shares access to the database with other (legacy) applications.

The session-level cache is often scoped to a single database transaction. However, it is possible to use a long-lived session spanning a sequence of user interactions, allowing a natural cache of data associated with the "application transaction".

Optional second-level cache

Hibernate features an extremely granular (class or collection role) second-level cache. The actual cache implementation is completely pluggable and supports clustered cache solutions like Tangosol Coherence, SwarmCache, JBoss TreeCache, as well as process-level cache implementations such as EHCache and OSCache. The second-level cache is appropriate for

  • immutable data
  • mutable data in the case of exclusive database access by the Hibernate application

Optional query cache

Query result sets may be selectively cached

Works well with others

Hibernate behaves correctly in an environment where other applications have simultaneous access to the database.

No "special" database tables

Hibernate itself has no persistent state - so theres no extra database tables maintaining locks, mapping data, etc.

Out of the box support for clustered caching

Both the second-level and query cache may be clustered

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