persistenc-unit-refPage added by David BlevinsVia annotationBoth lookup and injection of an EntityManagerFactory can be configured via the @PersistenceUnit annotation. Usable by EJB, Interceptor, Servlet, Filter, or Listener package org.superbiz; import javax.persistence.PersistenceUnit; import javax.persistence.EntityManagerFactory; import javax.ejb.Stateless; import javax.naming.InitialUnit; @Stateless @PersistenceUnit(name = "myFooEntityManagerFactory", unitName = "foo-unit") public class MyBean implements MyInterface { @PersistenceUnit(unitName = "bar-unit") private EntityManagerFactory myBarEntityManagerFactory; public void someBusinessMethod() throws Exception { if (myBarEntityManagerFactory == null) throw new NullPointerException("myBarEntityManagerFactory not injected"); // Both can be looked up from JNDI as well InitialUnit unit = new InitialUnit(); EntityManagerFactory fooEntityManagerFactory = (EntityManagerFactory) unit.lookup("java:comp/env/myFooEntityManagerFactory"); EntityManagerFactory barEntityManagerFactory = (EntityManagerFactory) unit.lookup("java:comp/env/org.superbiz.MyBean/myBarEntityManagerFactory"); } } Via xmlThe above @PersistenceUnit annotation usage is 100% equivalent to the following xml. ejb-jar.xml or web.xml <persistence-unit-ref> <persistence-unit-ref-name>myFooEntityManagerFactory</persistence-unit-ref-name> <persistence-unit-name>foo-unit</persistence-unit-name> <persistence-unit-type>Transaction</persistence-unit-type> </persistence-unit-ref> <persistence-unit-ref> <persistence-unit-ref-name>org.superbiz.calculator.MyBean/myBarEntityManagerFactory</persistence-unit-ref-name> <persistence-unit-name>bar-unit</persistence-unit-name> <persistence-unit-type>Transaction</persistence-unit-type> <injection-target> <injection-target-class>org.superbiz.calculator.MyBean</injection-target-class> <injection-target-name>myBarEntityManagerFactory</injection-target-name> </injection-target> </persistence-unit-ref>
Change Notification Preferences
View Online
|
Add Comment
|
