Hibernate.orgCommunity Documentation

Chapter 8. JNDI

Hibernate does optionally interact with JNDI on the applications behalf. Generally it does this when the application:

  • has asked the SessionFactory be bound to JNDI

  • has specified a DataSource to use by JNDI name

  • is using JTA transactions and the JtaPlatform needs to do JNDI lookups for TM, UT, etc

All of these JNDI calls route through a single service whose role is org.hibernate.engine.jndi.spi.JndiService. The standard JndiService accepts a number of configuration settings

  • hibernate.jndi.class - names the javax.naming.InitialContext implementation class to use. See javax.naming.Context#INITIAL_CONTEXT_FACTORY

  • hibernate.jndi.url - names the JNDI InitialContext connection url. See javax.naming.Context.PROVIDER_URL

  • Any other settings prefixed with hibernate.jndi. will be collected and passed along to the JNDI provider.

Note

The standard JndiService assumes that all JNDI calls are relative to the same InitialContext. If your application uses multiple naming servers for whatever reason, you will need a custom JndiService implementation to handle those details.