summaryrefslogtreecommitdiffstats
path: root/proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java
diff options
context:
space:
mode:
Diffstat (limited to 'proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java')
-rw-r--r--proxy/code/src/org/fedoraproject/candlepin/model/AbstractHibernateRepository.java20
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();
}
}