diff options
Diffstat (limited to 'proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java')
-rw-r--r-- | proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java b/proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java index 87c58f4..10b2a68 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java +++ b/proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java @@ -3,16 +3,18 @@ package org.fedoraproject.candlepin.model; import java.io.Serializable; import java.lang.reflect.ParameterizedType; +import javax.persistence.EntityManager; + import org.hibernate.Session; public abstract class AbstractHibernateRepository<E> { - protected final Session session; + protected final EntityManager em; private final Class<E> entityType; @SuppressWarnings("unchecked") - protected AbstractHibernateRepository(Session session) { - this.session = session; + protected AbstractHibernateRepository(EntityManager em) { + this.em = em; entityType = (Class<E>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; } @@ -22,19 +24,23 @@ public abstract class AbstractHibernateRepository<E> { public E create(E entity) { save(entity); - flush(); +// flush(); return entity; } protected final <T> T get(Class<T> clazz, Serializable id) { - return clazz.cast(session.get(clazz, id)); + return clazz.cast(currentSession().get(clazz, id)); } protected final void save(Object anObject) { - session.save(anObject); + currentSession().save(anObject); } protected final void flush() { - session.flush(); + em.flush(); + } + + protected Session currentSession() { + return (Session) em.getDelegate(); } } |