@Override public Session getSession() throws SQLException { if (!isTransActionAlive()) { sessionFactory.getCurrentSession().beginTransaction(); configureDatabaseMode(); } return sessionFactory.getCurrentSession(); }
@Override public void commit() throws SQLException { if (isTransActionAlive() && !getTransaction().getStatus().isOneOf(TransactionStatus.MARKED_ROLLBACK, TransactionStatus.ROLLING_BACK)) { getSession().flush(); getTransaction().commit(); } }
@Override public void rollback() throws SQLException { if (isTransActionAlive()) { getTransaction().rollback(); } }
uncacheEntity(handle); uncacheEntity(policy); uncacheEntity(bundle); uncacheEntity(bitstream); uncacheEntity(community.getLogo()); uncacheEntity(collection.getLogo()); uncacheEntity(collection.getTemplateItem()); if (getSession().contains(entity)) { if (!readOnlyEnabled && getSession().isDirty()) { getSession().flush(); getSession().evict(entity);
private void configureDatabaseMode() throws SQLException { if (batchModeEnabled) { getSession().setHibernateFlushMode(FlushMode.ALWAYS); } else if (readOnlyEnabled) { getSession().setHibernateFlushMode(FlushMode.MANUAL); } else { getSession().setHibernateFlushMode(FlushMode.AUTO); } }
@Override public void setConnectionMode(final boolean batchOptimized, final boolean readOnlyOptimized) throws SQLException { this.batchModeEnabled = batchOptimized; this.readOnlyEnabled = readOnlyOptimized; configureDatabaseMode(); }
@Override public boolean isTransActionAlive() { Transaction transaction = getTransaction(); return transaction != null && transaction.isActive(); }
@Override public DatabaseConfigVO getDatabaseConfig() throws SQLException { DatabaseConfigVO databaseConfigVO = new DatabaseConfigVO(); try (Connection connection = getDataSource().getConnection()) { DatabaseMetaData metaData = connection.getMetaData(); databaseConfigVO.setDatabaseDriver(metaData.getDriverName()); databaseConfigVO.setDatabaseUrl(metaData.getURL()); databaseConfigVO.setSchema(metaData.getSchemaTerm()); databaseConfigVO.setMaxConnections(metaData.getMaxConnections()); databaseConfigVO.setUserName(metaData.getUserName()); } return databaseConfigVO; }
@Override @SuppressWarnings("unchecked") public <E extends ReloadableEntity> E reloadEntity(final E entity) throws SQLException { if (entity == null) { return null; } else if (getSession().contains(entity)) { return entity; } else { return (E) getSession().get(HibernateProxyHelper.getClassWithoutInitializingProxy(entity), entity.getID()); } }
@Override public long getCacheSize() throws SQLException { return getSession().getStatistics().getEntityCount(); }