1 22 package org.jboss.ejb3.test.standalone; 23 24 import org.jboss.ejb3.Container; 25 26 import javax.ejb.Stateless ; 27 import javax.ejb.SessionContext ; 28 import javax.persistence.*; 29 import javax.annotation.Resource; 30 import javax.naming.Context ; 31 import javax.naming.InitialContext ; 32 import javax.naming.NamingException ; 33 import java.util.Hashtable ; 34 35 41 @Stateless 42 @PersistenceUnit(name="emf/pu", unitName="tempdb") 43 @PersistenceContext(name="em/pc", unitName="tempdb") 44 @PersistenceUnits( 45 @PersistenceUnit(name="emf/pus", unitName="tempdb") 46 ) 47 @PersistenceContexts( 48 @PersistenceContext(name="em/pcs", unitName="tempdb") 49 ) 50 public class CustomerDAOBean implements CustomerDAO 51 { 52 @PersistenceContext private EntityManager manager; 53 @Resource SessionContext ctx; 54 55 public long createCustomer() 56 { 57 Customer cust = new Customer(); 58 cust.setName("Bill"); 59 manager.persist(cust); 60 return cust.getId(); 61 } 62 63 public Customer findCustomer(long id) 64 { 65 EntityManagerFactory emf = null; 66 Hashtable props = new Hashtable (); 67 props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); 68 props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.LocalOnlyContextFactory"); 69 try 70 { 71 InitialContext initialContext = new InitialContext (props); 72 emf = (EntityManagerFactory)initialContext.lookup(Container.ENC_CTX_NAME + "/env/emf/pu"); 73 emf = (EntityManagerFactory)initialContext.lookup(Container.ENC_CTX_NAME + "/env/emf/pus"); 74 } 75 catch (NamingException e) 76 { 77 throw new RuntimeException (e); 78 } 79 emf = (EntityManagerFactory)ctx.lookup("emf/pu"); 80 if (emf == null) throw new RuntimeException ("Could not locate enc registered pu"); 81 emf = (EntityManagerFactory)ctx.lookup("emf/pus"); 82 if (emf == null) throw new RuntimeException ("Could not locate enc registered pu"); 83 84 EntityManager em = null; 85 try 86 { 87 InitialContext initialContext = new InitialContext (props); 88 em = (EntityManager)initialContext.lookup(Container.ENC_CTX_NAME + "/env/em/pc"); 89 em = (EntityManager)initialContext.lookup(Container.ENC_CTX_NAME + "/env/em/pcs"); 90 } 91 catch (NamingException e) 92 { 93 throw new RuntimeException (e); 94 } 95 em = (EntityManager)ctx.lookup("em/pc"); 96 if (em == null) throw new RuntimeException ("Could not locate enc registered pc"); 97 em = (EntityManager)ctx.lookup("em/pcs"); 98 if (em == null) throw new RuntimeException ("Could not locate enc registered pc"); 99 100 101 return manager.find(Customer.class, id); 102 } 103 } 104 | Popular Tags |