[hibernate-commits] Hibernate SVN: r17008 - core/trunk/entitymanager/src/main/java/org/hibernate/ejb.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Jul 6 13:19:44 EDT 2009


Author: epbernard
Date: 2009-07-06 13:19:44 -0400 (Mon, 06 Jul 2009)
New Revision: 17008

Modified:
   core/trunk/entitymanager/src/main/java/org/hibernate/ejb/EntityManagerFactoryImpl.java
Log:
EJB-446 implements EMF.getCache() except contains

Modified: core/trunk/entitymanager/src/main/java/org/hibernate/ejb/EntityManagerFactoryImpl.java
===================================================================
--- core/trunk/entitymanager/src/main/java/org/hibernate/ejb/EntityManagerFactoryImpl.java	2009-07-06 16:56:27 UTC (rev 17007)
+++ core/trunk/entitymanager/src/main/java/org/hibernate/ejb/EntityManagerFactoryImpl.java	2009-07-06 17:19:44 UTC (rev 17008)
@@ -3,6 +3,7 @@
 
 import java.util.Map;
 import java.util.Set;
+import java.io.Serializable;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContextType;
 import javax.persistence.Cache;
@@ -71,8 +72,7 @@
 	}
 
 	public Cache getCache() {
-		//FIXME
-		return null;  //To change body of implemented methods use File | Settings | File Templates.
+		return new JPACache( sessionFactory );
 	}
 
 	public boolean isOpen() {
@@ -83,4 +83,33 @@
 		return sessionFactory;
 	}
 
+	private static class JPACache implements Cache {
+		private SessionFactory sessionFactory;
+
+		private JPACache(SessionFactory sessionFactory) {
+			this.sessionFactory = sessionFactory;
+		}
+
+		public boolean contains(Class aClass, Object o) {
+			throw new UnsupportedOperationException( "not yet implemented - HHH-4021" );
+		}
+
+		public void evict(Class entityType, Object id) {
+			sessionFactory.evict( entityType, ( Serializable ) id );
+		}
+
+		public void evict(Class entityType) {
+			sessionFactory.evict( entityType );
+		}
+
+		public void evictAll() {
+			for ( String entityName : (Set<String>) sessionFactory.getAllClassMetadata().entrySet() ) {
+				sessionFactory.evictEntity( entityName );
+			}
+			for ( String collectionName : (Set<String>) sessionFactory.getAllCollectionMetadata().entrySet() ) {
+				sessionFactory.evictCollection( collectionName );	
+			}
+			sessionFactory.evictQueries();
+		}
+	}
 }




More information about the hibernate-commits mailing list