1 //$Id: EntityManagerFactoryImpl.java 11171 2007-02-08 03:40:51Z epbernard $
2 package org.hibernate.ejb;
3
4 import java.util.Map;
5 import javax.persistence.EntityManager;
6 import javax.persistence.PersistenceContextType;
7 import javax.persistence.spi.PersistenceUnitTransactionType;
8
9 import org.hibernate.SessionFactory;
10
11 /**
12 * @author Gavin King
13 * @author Emmanuel Bernard
14 */
15 public class EntityManagerFactoryImpl implements HibernateEntityManagerFactory {
16
17 private SessionFactory sessionFactory;
18 private PersistenceUnitTransactionType transactionType;
19 private boolean discardOnClose;
20
21 public EntityManagerFactoryImpl(
22 SessionFactory sessionFactory,
23 PersistenceUnitTransactionType transactionType,
24 boolean discardOnClose
25 ) {
26 this.sessionFactory = sessionFactory;
27 this.transactionType = transactionType;
28 this.discardOnClose = discardOnClose;
29 }
30
31 public EntityManager createEntityManager() {
32 return createEntityManager( null );
33 }
34
35 public EntityManager createEntityManager(Map map) {
36 //TODO support discardOnClose, persistencecontexttype?, interceptor,
37 return new EntityManagerImpl(
38 sessionFactory, PersistenceContextType.EXTENDED, transactionType, discardOnClose, map
39 );
40 }
41
42 public void close() {
43 sessionFactory.close();
44 }
45
46 public boolean isOpen() {
47 return ! sessionFactory.isClosed();
48 }
49
50 public SessionFactory getSessionFactory() {
51 return sessionFactory;
52 }
53
54 }