diff --git a/dspace-api/src/main/java/org/dspace/core/Context.java b/dspace-api/src/main/java/org/dspace/core/Context.java index 5f87d20998..8dca747a2e 100644 --- a/dspace-api/src/main/java/org/dspace/core/Context.java +++ b/dspace-api/src/main/java/org/dspace/core/Context.java @@ -714,6 +714,12 @@ public class Context return (E) dbConnection.reloadEntity(entity); } + @SuppressWarnings("unchecked") + public void uncacheEntity(E entity) throws SQLException { + dbConnection.uncacheEntity(entity); + } + + /** * Reload all entities related to this context. * @throws SQLException When reloading one of the entities fails. diff --git a/dspace-api/src/main/java/org/dspace/core/DBConnection.java b/dspace-api/src/main/java/org/dspace/core/DBConnection.java index 9450ccc001..953eee7372 100644 --- a/dspace-api/src/main/java/org/dspace/core/DBConnection.java +++ b/dspace-api/src/main/java/org/dspace/core/DBConnection.java @@ -53,4 +53,6 @@ public interface DBConnection { * @param entity The DSpace object to reload */ public E reloadEntity(E entity) throws SQLException; + + public void uncacheEntity(E entity) throws SQLException ; } \ No newline at end of file diff --git a/dspace-api/src/main/java/org/dspace/core/HibernateDBConnection.java b/dspace-api/src/main/java/org/dspace/core/HibernateDBConnection.java index e6f529f63e..9288e3e7f2 100644 --- a/dspace-api/src/main/java/org/dspace/core/HibernateDBConnection.java +++ b/dspace-api/src/main/java/org/dspace/core/HibernateDBConnection.java @@ -157,4 +157,9 @@ public class HibernateDBConnection implements DBConnection { getSession().setFlushMode(FlushMode.AUTO); } } + + @Override + public void uncacheEntity(E entity) throws SQLException { + getSession().evict(entity); + } } \ No newline at end of file