diff --git a/src/main/java/org/olat/core/commons/persistence/DB.java b/src/main/java/org/olat/core/commons/persistence/DB.java index 3e69bd5b28c91a8082df917a4314f058a6d0046f..0798c848fb0847d32b8732140d7937f897fd3912 100644 --- a/src/main/java/org/olat/core/commons/persistence/DB.java +++ b/src/main/java/org/olat/core/commons/persistence/DB.java @@ -111,7 +111,7 @@ public interface DB { * @param key * @return Object, if any found. or null otherwise */ - public Object findObject(Class theClass, Long key); + public <U> U findObject(Class<U> theClass, Long key); /** * Find objects based on query @@ -128,7 +128,7 @@ public interface DB { * @param key * @return Object. */ - public Object loadObject(Class<?> theClass, Long key); + public <U> U loadObject(Class<U> theClass, Long key); /** * Save an object. diff --git a/src/main/java/org/olat/core/commons/persistence/DBImpl.java b/src/main/java/org/olat/core/commons/persistence/DBImpl.java index 7e1b53ffea6a1ef0f164a87bc8cace92798ad6f4..cf64d687ba56f076d0b0797a69dd2d7981331e5b 100644 --- a/src/main/java/org/olat/core/commons/persistence/DBImpl.java +++ b/src/main/java/org/olat/core/commons/persistence/DBImpl.java @@ -60,8 +60,6 @@ import org.olat.core.logging.DBRuntimeException; import org.olat.core.logging.LogDelegator; import org.olat.core.logging.OLog; import org.olat.core.logging.Tracing; -import org.olat.group.BusinessGroup; -import org.olat.group.BusinessGroupImpl; import org.olat.testutils.codepoints.server.Codepoint; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.jmx.support.MBeanServerFactoryBean; @@ -525,9 +523,9 @@ public class DBImpl extends LogDelegator implements DB, Destroyable { * @param key * @return Object, if any found. Null, if non exist. */ - public Object findObject(Class theClass, Long key) { + public <U> U findObject(Class<U> theClass, Long key) { beginTransaction(key); - return getDBManager().findObject(theClass, key); + return getCurrentEntityManager().find(theClass, key); } /** @@ -537,7 +535,7 @@ public class DBImpl extends LogDelegator implements DB, Destroyable { * @param key * @return Object. */ - public Object loadObject(Class theClass, Long key) { + public <U> U loadObject(Class<U> theClass, Long key) { beginTransaction(key); return getDBManager().loadObject(getTransaction(), theClass, key); } @@ -561,16 +559,6 @@ public class DBImpl extends LogDelegator implements DB, Destroyable { beginTransaction(object); getDBManager().updateObject(getTransaction(), object); } - - public void updateObject(BusinessGroup object) { - beginTransaction(object); - getDBManager().updateObject(getTransaction(), object); - } - - public void updateObject(BusinessGroupImpl object) { - beginTransaction(object); - getDBManager().updateObject(getTransaction(), object); - } /** * Get any errors from a previous DB call. diff --git a/src/main/java/org/olat/core/commons/persistence/DBManager.java b/src/main/java/org/olat/core/commons/persistence/DBManager.java index 086298f2b6ab0100409b3cf3f97525daec81039d..5fd88c2058c05207b54dab2282b3da52e51e454b 100644 --- a/src/main/java/org/olat/core/commons/persistence/DBManager.java +++ b/src/main/java/org/olat/core/commons/persistence/DBManager.java @@ -139,10 +139,10 @@ class DBManager extends BasicManager { * @param theClass The class for the object to be loaded * @param pK The primary key for the object */ - Object loadObject(DBTransaction trx, Class theClass, Long pK) { - Object o = null; + <U> U loadObject(DBTransaction trx, Class<U> theClass, Long pK) { + U o = null; try { - o = getSession().load(theClass, pK); + o = getEntityManager().find(theClass, pK); if (isLogDebugEnabled()) { logDebug("load (res " +(o == null? "null": "ok")+")(trans "+trx.hashCode()+") key "+pK+" class "+theClass.getName()); } @@ -258,9 +258,13 @@ class DBManager extends BasicManager { Session getSession() { return getDbSession().getHibernateSession(); } + + EntityManager getEntityManager() { + return getDbSession().getEntityManager(); + } DBTransaction beginTransaction() { - return this.getDbSession().beginDbTransaction(); + return getDbSession().beginDbTransaction(); } /** @@ -271,7 +275,7 @@ class DBManager extends BasicManager { Query q = null; DBQuery dbq = null; try { - q = this.getSession().createQuery(query); + q = getSession().createQuery(query); dbq = new DBQueryImpl(q); } catch (HibernateException he) { setError(he); diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java index d37afc14f4cbf245a338af1facc322993fb52bf3..f0d1ba57b1d50d721979cf36fd68bd3add8ba342 100644 --- a/src/main/java/org/olat/repository/RepositoryManager.java +++ b/src/main/java/org/olat/repository/RepositoryManager.java @@ -380,7 +380,7 @@ public class RepositoryManager extends BasicManager { */ public RepositoryEntry lookupRepositoryEntry(Long key) { if (key == null) return null; - return (RepositoryEntry)DBFactory.getInstance().findObject(RepositoryEntry.class, key); + return dbInstance.getCurrentEntityManager().find(RepositoryEntry.class, key); } /**