From 579c7429bfdca3350f8338c0ee7588289dc60803 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 27 Jun 2012 11:20:08 +0200 Subject: [PATCH] OO-291: small changes on DB --- .../org/olat/core/commons/persistence/DB.java | 4 ++-- .../olat/core/commons/persistence/DBImpl.java | 18 +++--------------- .../core/commons/persistence/DBManager.java | 14 +++++++++----- .../org/olat/repository/RepositoryManager.java | 2 +- 4 files changed, 15 insertions(+), 23 deletions(-) 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 3e69bd5b28c..0798c848fb0 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 7e1b53ffea6..cf64d687ba5 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 086298f2b6a..5fd88c2058c 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 d37afc14f4c..f0d1ba57b1d 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); } /** -- GitLab