Add @Override annotations to main sources

Issue: SPR-10130
This commit is contained in:
Chris Beams
2012-12-28 14:00:16 +01:00
parent 9c2046c3ee
commit 3b40ce76bf
1256 changed files with 5716 additions and 0 deletions

View File

@@ -184,6 +184,7 @@ public abstract class AbstractSessionFactoryBean extends HibernateExceptionTrans
* @see #buildSessionFactory()
* @see #wrapSessionFactoryIfNecessary
*/
@Override
public void afterPropertiesSet() throws Exception {
SessionFactory rawSf = buildSessionFactory();
this.sessionFactory = wrapSessionFactoryIfNecessary(rawSf);
@@ -219,6 +220,7 @@ public abstract class AbstractSessionFactoryBean extends HibernateExceptionTrans
/**
* Close the SessionFactory on bean factory shutdown.
*/
@Override
public void destroy() throws HibernateException {
logger.info("Closing Hibernate SessionFactory");
try {
@@ -233,14 +235,17 @@ public abstract class AbstractSessionFactoryBean extends HibernateExceptionTrans
/**
* Return the singleton SessionFactory.
*/
@Override
public SessionFactory getObject() {
return this.sessionFactory;
}
@Override
public Class<? extends SessionFactory> getObjectType() {
return (this.sessionFactory != null ? this.sessionFactory.getClass() : SessionFactory.class);
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -137,26 +137,31 @@ public class FilterDefinitionFactoryBean implements FactoryBean<FilterDefinition
* the FilterDefinitionFactoryBean will be used.
* @see #setFilterName
*/
@Override
public void setBeanName(String name) {
if (this.filterName == null) {
this.filterName = name;
}
}
@Override
public void afterPropertiesSet() {
this.filterDefinition =
new FilterDefinition(this.filterName, this.defaultFilterCondition, this.parameterTypeMap);
}
@Override
public FilterDefinition getObject() {
return this.filterDefinition;
}
@Override
public Class<FilterDefinition> getObjectType() {
return FilterDefinition.class;
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -305,10 +305,12 @@ public abstract class HibernateAccessor implements InitializingBean, BeanFactory
* bean names. It does not need to be set for any other mode of operation.
* @see #setEntityInterceptorBeanName
*/
@Override
public void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
@Override
public void afterPropertiesSet() {
if (getSessionFactory() == null) {
throw new IllegalArgumentException("Property 'sessionFactory' is required");

View File

@@ -63,6 +63,7 @@ public class HibernateExceptionTranslator implements PersistenceExceptionTransla
}
@Override
public DataAccessException translateExceptionIfPossible(RuntimeException ex) {
if (ex instanceof HibernateException) {
return convertHibernateAccessException((HibernateException) ex);

View File

@@ -86,6 +86,7 @@ public class HibernateInterceptor extends HibernateAccessor implements MethodInt
}
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
Session session = getSession();
SessionHolder sessionHolder =

View File

@@ -335,10 +335,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
}
@Override
public <T> T execute(HibernateCallback<T> action) throws DataAccessException {
return doExecute(action, false, false);
}
@Override
public List executeFind(HibernateCallback<?> action) throws DataAccessException {
Object result = doExecute(action, false, false);
if (result != null && !(result instanceof List)) {
@@ -502,14 +504,17 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
// Convenience methods for loading individual objects
//-------------------------------------------------------------------------
@Override
public <T> T get(Class<T> entityClass, Serializable id) throws DataAccessException {
return get(entityClass, id, null);
}
@Override
public <T> T get(final Class<T> entityClass, final Serializable id, final LockMode lockMode)
throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<T>() {
@Override
@SuppressWarnings("unchecked")
public T doInHibernate(Session session) throws HibernateException {
if (lockMode != null) {
@@ -522,14 +527,17 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public Object get(String entityName, Serializable id) throws DataAccessException {
return get(entityName, id, null);
}
@Override
public Object get(final String entityName, final Serializable id, final LockMode lockMode)
throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
if (lockMode != null) {
return session.get(entityName, id, lockMode);
@@ -541,14 +549,17 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public <T> T load(Class<T> entityClass, Serializable id) throws DataAccessException {
return load(entityClass, id, null);
}
@Override
public <T> T load(final Class<T> entityClass, final Serializable id, final LockMode lockMode)
throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<T>() {
@Override
@SuppressWarnings("unchecked")
public T doInHibernate(Session session) throws HibernateException {
if (lockMode != null) {
@@ -561,14 +572,17 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public Object load(String entityName, Serializable id) throws DataAccessException {
return load(entityName, id, null);
}
@Override
public Object load(final String entityName, final Serializable id, final LockMode lockMode)
throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
if (lockMode != null) {
return session.load(entityName, id, lockMode);
@@ -580,8 +594,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public <T> List<T> loadAll(final Class<T> entityClass) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<List<T>>() {
@Override
@SuppressWarnings("unchecked")
public List<T> doInHibernate(Session session) throws HibernateException {
Criteria criteria = session.createCriteria(entityClass);
@@ -592,8 +608,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void load(final Object entity, final Serializable id) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
session.load(entity, id);
return null;
@@ -601,12 +619,15 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void refresh(final Object entity) throws DataAccessException {
refresh(entity, null);
}
@Override
public void refresh(final Object entity, final LockMode lockMode) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
if (lockMode != null) {
session.refresh(entity, lockMode);
@@ -619,16 +640,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public boolean contains(final Object entity) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<Boolean>() {
@Override
public Boolean doInHibernate(Session session) {
return session.contains(entity);
}
});
}
@Override
public void evict(final Object entity) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
session.evict(entity);
return null;
@@ -636,6 +661,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void initialize(Object proxy) throws DataAccessException {
try {
Hibernate.initialize(proxy);
@@ -645,6 +671,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
}
}
@Override
public Filter enableFilter(String filterName) throws IllegalStateException {
Session session = SessionFactoryUtils.getSession(getSessionFactory(), false);
Filter filter = session.getEnabledFilter(filterName);
@@ -659,8 +686,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
// Convenience methods for storing individual objects
//-------------------------------------------------------------------------
@Override
public void lock(final Object entity, final LockMode lockMode) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
session.lock(entity, lockMode);
return null;
@@ -668,10 +697,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void lock(final String entityName, final Object entity, final LockMode lockMode)
throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
session.lock(entityName, entity, lockMode);
return null;
@@ -679,8 +710,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public Serializable save(final Object entity) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<Serializable>() {
@Override
public Serializable doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
return session.save(entity);
@@ -688,8 +721,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public Serializable save(final String entityName, final Object entity) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<Serializable>() {
@Override
public Serializable doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
return session.save(entityName, entity);
@@ -697,12 +732,15 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void update(Object entity) throws DataAccessException {
update(entity, null);
}
@Override
public void update(final Object entity, final LockMode lockMode) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.update(entity);
@@ -714,14 +752,17 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void update(String entityName, Object entity) throws DataAccessException {
update(entityName, entity, null);
}
@Override
public void update(final String entityName, final Object entity, final LockMode lockMode)
throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.update(entityName, entity);
@@ -733,8 +774,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void saveOrUpdate(final Object entity) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.saveOrUpdate(entity);
@@ -743,8 +786,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void saveOrUpdate(final String entityName, final Object entity) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.saveOrUpdate(entityName, entity);
@@ -753,8 +798,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void saveOrUpdateAll(final Collection entities) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
for (Object entity : entities) {
@@ -765,10 +812,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void replicate(final Object entity, final ReplicationMode replicationMode)
throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.replicate(entity, replicationMode);
@@ -777,10 +826,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void replicate(final String entityName, final Object entity, final ReplicationMode replicationMode)
throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.replicate(entityName, entity, replicationMode);
@@ -789,8 +840,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void persist(final Object entity) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.persist(entity);
@@ -799,8 +852,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void persist(final String entityName, final Object entity) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.persist(entityName, entity);
@@ -809,8 +864,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public <T> T merge(final T entity) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<T>() {
@Override
@SuppressWarnings("unchecked")
public T doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
@@ -819,8 +876,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public <T> T merge(final String entityName, final T entity) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<T>() {
@Override
@SuppressWarnings("unchecked")
public T doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
@@ -829,12 +888,15 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void delete(Object entity) throws DataAccessException {
delete(entity, null);
}
@Override
public void delete(final Object entity, final LockMode lockMode) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
if (lockMode != null) {
@@ -846,14 +908,17 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void delete(String entityName, Object entity) throws DataAccessException {
delete(entityName, entity, null);
}
@Override
public void delete(final String entityName, final Object entity, final LockMode lockMode)
throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
if (lockMode != null) {
@@ -865,8 +930,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void deleteAll(final Collection entities) throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
for (Object entity : entities) {
@@ -877,8 +944,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void flush() throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException {
session.flush();
return null;
@@ -886,8 +955,10 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void clear() throws DataAccessException {
executeWithNativeSession(new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) {
session.clear();
return null;
@@ -900,16 +971,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
// Convenience finder methods for HQL strings
//-------------------------------------------------------------------------
@Override
public List find(String queryString) throws DataAccessException {
return find(queryString, (Object[]) null);
}
@Override
public List find(String queryString, Object value) throws DataAccessException {
return find(queryString, new Object[] {value});
}
@Override
public List find(final String queryString, final Object... values) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
@@ -923,12 +998,14 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public List findByNamedParam(String queryString, String paramName, Object value)
throws DataAccessException {
return findByNamedParam(queryString, new String[] {paramName}, new Object[] {value});
}
@Override
public List findByNamedParam(final String queryString, final String[] paramNames, final Object[] values)
throws DataAccessException {
@@ -936,6 +1013,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
throw new IllegalArgumentException("Length of paramNames array must match length of values array");
}
return executeWithNativeSession(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
@@ -949,10 +1027,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public List findByValueBean(final String queryString, final Object valueBean)
throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
@@ -967,16 +1047,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
// Convenience finder methods for named queries
//-------------------------------------------------------------------------
@Override
public List findByNamedQuery(String queryName) throws DataAccessException {
return findByNamedQuery(queryName, (Object[]) null);
}
@Override
public List findByNamedQuery(String queryName, Object value) throws DataAccessException {
return findByNamedQuery(queryName, new Object[] {value});
}
@Override
public List findByNamedQuery(final String queryName, final Object... values) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
Query queryObject = session.getNamedQuery(queryName);
prepareQuery(queryObject);
@@ -990,12 +1074,14 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public List findByNamedQueryAndNamedParam(String queryName, String paramName, Object value)
throws DataAccessException {
return findByNamedQueryAndNamedParam(queryName, new String[] {paramName}, new Object[] {value});
}
@Override
public List findByNamedQueryAndNamedParam(
final String queryName, final String[] paramNames, final Object[] values)
throws DataAccessException {
@@ -1004,6 +1090,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
throw new IllegalArgumentException("Length of paramNames array must match length of values array");
}
return executeWithNativeSession(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
Query queryObject = session.getNamedQuery(queryName);
prepareQuery(queryObject);
@@ -1017,10 +1104,12 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public List findByNamedQueryAndValueBean(final String queryName, final Object valueBean)
throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
Query queryObject = session.getNamedQuery(queryName);
prepareQuery(queryObject);
@@ -1035,15 +1124,18 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
// Convenience finder methods for detached criteria
//-------------------------------------------------------------------------
@Override
public List findByCriteria(DetachedCriteria criteria) throws DataAccessException {
return findByCriteria(criteria, -1, -1);
}
@Override
public List findByCriteria(final DetachedCriteria criteria, final int firstResult, final int maxResults)
throws DataAccessException {
Assert.notNull(criteria, "DetachedCriteria must not be null");
return executeWithNativeSession(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
Criteria executableCriteria = criteria.getExecutableCriteria(session);
prepareCriteria(executableCriteria);
@@ -1058,24 +1150,29 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public List findByExample(Object exampleEntity) throws DataAccessException {
return findByExample(null, exampleEntity, -1, -1);
}
@Override
public List findByExample(String entityName, Object exampleEntity) throws DataAccessException {
return findByExample(entityName, exampleEntity, -1, -1);
}
@Override
public List findByExample(Object exampleEntity, int firstResult, int maxResults) throws DataAccessException {
return findByExample(null, exampleEntity, firstResult, maxResults);
}
@Override
public List findByExample(
final String entityName, final Object exampleEntity, final int firstResult, final int maxResults)
throws DataAccessException {
Assert.notNull(exampleEntity, "Example entity must not be null");
return executeWithNativeSession(new HibernateCallback<List>() {
@Override
public List doInHibernate(Session session) throws HibernateException {
Criteria executableCriteria = (entityName != null ?
session.createCriteria(entityName) : session.createCriteria(exampleEntity.getClass()));
@@ -1097,16 +1194,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
// Convenience query methods for iteration and bulk updates/deletes
//-------------------------------------------------------------------------
@Override
public Iterator iterate(String queryString) throws DataAccessException {
return iterate(queryString, (Object[]) null);
}
@Override
public Iterator iterate(String queryString, Object value) throws DataAccessException {
return iterate(queryString, new Object[] {value});
}
@Override
public Iterator iterate(final String queryString, final Object... values) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<Iterator>() {
@Override
public Iterator doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
@@ -1120,6 +1221,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
});
}
@Override
public void closeIterator(Iterator it) throws DataAccessException {
try {
Hibernate.close(it);
@@ -1129,16 +1231,20 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
}
}
@Override
public int bulkUpdate(String queryString) throws DataAccessException {
return bulkUpdate(queryString, (Object[]) null);
}
@Override
public int bulkUpdate(String queryString, Object value) throws DataAccessException {
return bulkUpdate(queryString, new Object[] {value});
}
@Override
public int bulkUpdate(final String queryString, final Object... values) throws DataAccessException {
return executeWithNativeSession(new HibernateCallback<Integer>() {
@Override
public Integer doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
@@ -1261,6 +1367,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on Session interface coming in...

View File

@@ -395,10 +395,12 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
* bean names. It does not need to be set for any other mode of operation.
* @see #setEntityInterceptorBeanName
*/
@Override
public void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
@Override
public void afterPropertiesSet() {
if (getSessionFactory() == null) {
throw new IllegalArgumentException("Property 'sessionFactory' is required");
@@ -422,6 +424,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
}
@Override
public Object getResourceFactory() {
return getSessionFactory();
}
@@ -882,11 +885,13 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
}
}
@Override
public boolean isRollbackOnly() {
return this.sessionHolder.isRollbackOnly() ||
(hasConnectionHolder() && getConnectionHolder().isRollbackOnly());
}
@Override
public void flush() {
try {
this.sessionHolder.getSession().flush();

View File

@@ -47,22 +47,27 @@ public class LocalCacheProviderProxy implements CacheProvider {
}
@Override
public Cache buildCache(String regionName, Properties properties) throws CacheException {
return this.cacheProvider.buildCache(regionName, properties);
}
@Override
public long nextTimestamp() {
return this.cacheProvider.nextTimestamp();
}
@Override
public void start(Properties properties) throws CacheException {
this.cacheProvider.start(properties);
}
@Override
public void stop() {
this.cacheProvider.stop();
}
@Override
public boolean isMinimalPutsEnabledByDefault() {
return this.cacheProvider.isMinimalPutsEnabledByDefault();
}

View File

@@ -44,6 +44,7 @@ public class LocalDataSourceConnectionProvider implements ConnectionProvider {
private DataSource dataSourceToUse;
@Override
public void configure(Properties props) throws HibernateException {
this.dataSource = LocalSessionFactoryBean.getConfigTimeDataSource();
// absolutely needs thread-bound DataSource to initialize
@@ -78,6 +79,7 @@ public class LocalDataSourceConnectionProvider implements ConnectionProvider {
* This implementation delegates to the underlying DataSource.
* @see javax.sql.DataSource#getConnection()
*/
@Override
public Connection getConnection() throws SQLException {
try {
return this.dataSourceToUse.getConnection();
@@ -92,6 +94,7 @@ public class LocalDataSourceConnectionProvider implements ConnectionProvider {
* This implementation calls {@link DataSourceUtils#doCloseConnection},
* checking against a {@link org.springframework.jdbc.datasource.SmartDataSource}.
*/
@Override
public void closeConnection(Connection con) throws SQLException {
try {
DataSourceUtils.doCloseConnection(con, this.dataSourceToUse);
@@ -106,6 +109,7 @@ public class LocalDataSourceConnectionProvider implements ConnectionProvider {
* This implementation does nothing:
* We're dealing with an externally managed DataSource.
*/
@Override
public void close() {
}
@@ -114,6 +118,7 @@ public class LocalDataSourceConnectionProvider implements ConnectionProvider {
* to receive the same Connection within a transaction, not even when
* dealing with a JNDI DataSource.
*/
@Override
public boolean supportsAggressiveRelease() {
return false;
}

View File

@@ -70,14 +70,17 @@ public class LocalRegionFactoryProxy implements RegionFactory {
}
@Override
public void start(Settings settings, Properties properties) throws CacheException {
this.regionFactory.start(settings, properties);
}
@Override
public void stop() {
this.regionFactory.stop();
}
@Override
public boolean isMinimalPutsEnabledByDefault() {
return this.regionFactory.isMinimalPutsEnabledByDefault();
}
@@ -92,28 +95,33 @@ public class LocalRegionFactoryProxy implements RegionFactory {
}
}
@Override
public long nextTimestamp() {
return this.regionFactory.nextTimestamp();
}
@Override
public EntityRegion buildEntityRegion(String regionName, Properties properties, CacheDataDescription metadata)
throws CacheException {
return this.regionFactory.buildEntityRegion(regionName, properties, metadata);
}
@Override
public CollectionRegion buildCollectionRegion(String regionName, Properties properties,
CacheDataDescription metadata) throws CacheException {
return this.regionFactory.buildCollectionRegion(regionName, properties, metadata);
}
@Override
public QueryResultsRegion buildQueryResultsRegion(String regionName, Properties properties)
throws CacheException {
return this.regionFactory.buildQueryResultsRegion(regionName, properties);
}
@Override
public TimestampsRegion buildTimestampsRegion(String regionName, Properties properties)
throws CacheException {

View File

@@ -540,6 +540,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
this.schemaUpdate = schemaUpdate;
}
@Override
public void setBeanClassLoader(ClassLoader beanClassLoader) {
this.beanClassLoader = beanClassLoader;
}
@@ -939,6 +940,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER);
hibernateTemplate.execute(
new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
@SuppressWarnings("deprecation")
Connection con = session.connection();
@@ -984,6 +986,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_NEVER);
hibernateTemplate.execute(
new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
@SuppressWarnings("deprecation")
Connection con = session.connection();
@@ -1021,6 +1024,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory);
hibernateTemplate.execute(
new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
@SuppressWarnings("deprecation")
Connection con = session.connection();
@@ -1058,6 +1062,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen
HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory);
hibernateTemplate.execute(
new HibernateCallback<Object>() {
@Override
public Object doInHibernate(Session session) throws HibernateException, SQLException {
@SuppressWarnings("deprecation")
Connection con = session.connection();

View File

@@ -58,14 +58,17 @@ public class LocalTransactionManagerLookup implements TransactionManagerLookup {
this.transactionManager = tm;
}
@Override
public TransactionManager getTransactionManager(Properties props) {
return this.transactionManager;
}
@Override
public String getUserTransactionName() {
return null;
}
@Override
public Object getTransactionIdentifier(Transaction transaction) {
return transaction;
}

View File

@@ -56,6 +56,7 @@ public class SpringSessionContext implements CurrentSessionContext {
/**
* Retrieve the Spring-managed Session for the current thread, if any.
*/
@Override
public Session currentSession() throws HibernateException {
try {
return (org.hibernate.classic.Session) SessionFactoryUtils.doGetSession(this.sessionFactory, false);

View File

@@ -106,10 +106,12 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere
}
@Override
public int getOrder() {
return SessionFactoryUtils.SESSION_SYNCHRONIZATION_ORDER;
}
@Override
public void suspend() {
if (this.holderActive) {
TransactionSynchronizationManager.unbindResource(this.sessionFactory);
@@ -118,12 +120,14 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere
}
}
@Override
public void resume() {
if (this.holderActive) {
TransactionSynchronizationManager.bindResource(this.sessionFactory, this.sessionHolder);
}
}
@Override
public void flush() {
try {
SessionFactoryUtils.logger.debug("Flushing Hibernate Session on explicit request");
@@ -134,6 +138,7 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere
}
}
@Override
public void beforeCommit(boolean readOnly) throws DataAccessException {
if (!readOnly) {
Session session = getCurrentSession();
@@ -160,6 +165,7 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere
return SessionFactoryUtils.convertHibernateAccessException(ex);
}
@Override
public void beforeCompletion() {
if (this.jtaTransaction != null) {
// Typically in case of a suspended JTA transaction:
@@ -214,9 +220,11 @@ class SpringSessionSynchronization implements TransactionSynchronization, Ordere
}
}
@Override
public void afterCommit() {
}
@Override
public void afterCompletion(int status) {
try {
if (!this.hibernateTransactionCompletion || !this.newSession) {

View File

@@ -46,25 +46,31 @@ public class SpringTransactionFactory implements TransactionFactory {
* However, for Spring's resource management (in particular for
* HibernateTransactionManager), "on_close" is the better default.
*/
@Override
public ConnectionReleaseMode getDefaultReleaseMode() {
return ConnectionReleaseMode.ON_CLOSE;
}
@Override
public Transaction createTransaction(JDBCContext jdbcContext, Context transactionContext) {
return new JDBCTransaction(jdbcContext, transactionContext);
}
@Override
public void configure(Properties props) {
}
@Override
public boolean isTransactionManagerRequired() {
return false;
}
@Override
public boolean areCallbacksLocalToHibernateTransactions() {
return true;
}
@Override
public boolean isTransactionInProgress(
JDBCContext jdbcContext, Context transactionContext, Transaction transaction) {

View File

@@ -111,12 +111,14 @@ public class TypeDefinitionBean implements BeanNameAware, InitializingBean {
* the TypeDefinitionBean will be used.
* @see #setTypeName
*/
@Override
public void setBeanName(String name) {
if (this.typeName == null) {
this.typeName = name;
}
}
@Override
public void afterPropertiesSet() {
if (this.typeName == null) {
throw new IllegalArgumentException("typeName is required");

View File

@@ -150,6 +150,7 @@ public class AnnotationSessionFactoryBean extends LocalSessionFactoryBean implem
this.entityTypeFilters = entityTypeFilters;
}
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader);
}

View File

@@ -87,6 +87,7 @@ public abstract class AbstractLobType implements UserType {
/**
* This implementation returns false.
*/
@Override
public boolean isMutable() {
return false;
}
@@ -95,6 +96,7 @@ public abstract class AbstractLobType implements UserType {
* This implementation delegates to the Hibernate EqualsHelper.
* @see org.hibernate.util.EqualsHelper#equals
*/
@Override
public boolean equals(Object x, Object y) throws HibernateException {
return EqualsHelper.equals(x, y);
}
@@ -102,6 +104,7 @@ public abstract class AbstractLobType implements UserType {
/**
* This implementation returns the hashCode of the given objectz.
*/
@Override
public int hashCode(Object x) throws HibernateException {
return x.hashCode();
}
@@ -109,6 +112,7 @@ public abstract class AbstractLobType implements UserType {
/**
* This implementation returns the passed-in value as-is.
*/
@Override
public Object deepCopy(Object value) throws HibernateException {
return value;
}
@@ -116,6 +120,7 @@ public abstract class AbstractLobType implements UserType {
/**
* This implementation returns the passed-in value as-is.
*/
@Override
public Serializable disassemble(Object value) throws HibernateException {
return (Serializable) value;
}
@@ -123,6 +128,7 @@ public abstract class AbstractLobType implements UserType {
/**
* This implementation returns the passed-in value as-is.
*/
@Override
public Object assemble(Serializable cached, Object owner) throws HibernateException {
return cached;
}
@@ -130,6 +136,7 @@ public abstract class AbstractLobType implements UserType {
/**
* This implementation returns the passed-in original as-is.
*/
@Override
public Object replace(Object original, Object target, Object owner) throws HibernateException {
return original;
}
@@ -140,6 +147,7 @@ public abstract class AbstractLobType implements UserType {
* passing in the LobHandler of this type.
* @see #nullSafeGetInternal
*/
@Override
public final Object nullSafeGet(ResultSet rs, String[] names, Object owner)
throws HibernateException, SQLException {
@@ -162,6 +170,7 @@ public abstract class AbstractLobType implements UserType {
* LobHandler of this type.
* @see #nullSafeSetInternal
*/
@Override
public final void nullSafeSet(PreparedStatement st, Object value, int index)
throws HibernateException, SQLException {

View File

@@ -60,10 +60,12 @@ public class BlobByteArrayType extends AbstractLobType {
super(lobHandler, jtaTransactionManager);
}
@Override
public int[] sqlTypes() {
return new int[] {Types.BLOB};
}
@Override
public Class returnedClass() {
return byte[].class;
}

View File

@@ -76,10 +76,12 @@ public class BlobSerializableType extends AbstractLobType {
super(lobHandler, jtaTransactionManager);
}
@Override
public int[] sqlTypes() {
return new int[] {Types.BLOB};
}
@Override
public Class returnedClass() {
return Serializable.class;
}

View File

@@ -66,10 +66,12 @@ public class BlobStringType extends AbstractLobType {
super(lobHandler, jtaTransactionManager);
}
@Override
public int[] sqlTypes() {
return new int[] {Types.BLOB};
}
@Override
public Class returnedClass() {
return String.class;
}

View File

@@ -62,10 +62,12 @@ public class ClobStringType extends AbstractLobType {
super(lobHandler, jtaTransactionManager);
}
@Override
public int[] sqlTypes() {
return new int[] {Types.CLOB};
}
@Override
public Class returnedClass() {
return String.class;
}

View File

@@ -144,6 +144,7 @@ public class OpenSessionInViewInterceptor extends HibernateAccessor implements A
* {@link TransactionSynchronizationManager}.
* @see org.springframework.orm.hibernate3.SessionFactoryUtils#getSession
*/
@Override
public void preHandle(WebRequest request) throws DataAccessException {
WebAsyncManager asyncManager = WebAsyncUtils.getAsyncManager(request);
@@ -189,6 +190,7 @@ public class OpenSessionInViewInterceptor extends HibernateAccessor implements A
* assuming that service layer transactions have flushed their changes on commit.
* @see #setFlushMode
*/
@Override
public void postHandle(WebRequest request, ModelMap model) throws DataAccessException {
if (isSingleSession()) {
// Only potentially flush in single session mode.
@@ -210,6 +212,7 @@ public class OpenSessionInViewInterceptor extends HibernateAccessor implements A
* been opened during the current request (in deferred close mode).
* @see org.springframework.transaction.support.TransactionSynchronizationManager
*/
@Override
public void afterCompletion(WebRequest request, Exception ex) throws DataAccessException {
if (!decrementParticipateCount(request)) {
if (isSingleSession()) {
@@ -226,6 +229,7 @@ public class OpenSessionInViewInterceptor extends HibernateAccessor implements A
}
}
@Override
public void afterConcurrentHandlingStarted(WebRequest request) {
if (!decrementParticipateCount(request)) {
if (isSingleSession()) {

View File

@@ -282,6 +282,7 @@ public class SqlMapClientFactoryBean implements FactoryBean<SqlMapClient>, Initi
}
@Override
public void afterPropertiesSet() throws Exception {
if (this.lobHandler != null) {
// Make given LobHandler available for SqlMapClient configuration.
@@ -382,14 +383,17 @@ public class SqlMapClientFactoryBean implements FactoryBean<SqlMapClient>, Initi
}
@Override
public SqlMapClient getObject() {
return this.sqlMapClient;
}
@Override
public Class<? extends SqlMapClient> getObjectType() {
return (this.sqlMapClient != null ? this.sqlMapClient.getClass() : SqlMapClient.class);
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -261,73 +261,87 @@ public class SqlMapClientTemplate extends JdbcAccessor implements SqlMapClientOp
}
@Override
public Object queryForObject(String statementName) throws DataAccessException {
return queryForObject(statementName, null);
}
@Override
public Object queryForObject(final String statementName, final Object parameterObject)
throws DataAccessException {
return execute(new SqlMapClientCallback<Object>() {
@Override
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.queryForObject(statementName, parameterObject);
}
});
}
@Override
public Object queryForObject(
final String statementName, final Object parameterObject, final Object resultObject)
throws DataAccessException {
return execute(new SqlMapClientCallback<Object>() {
@Override
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.queryForObject(statementName, parameterObject, resultObject);
}
});
}
@Override
public List queryForList(String statementName) throws DataAccessException {
return queryForList(statementName, null);
}
@Override
public List queryForList(final String statementName, final Object parameterObject)
throws DataAccessException {
return execute(new SqlMapClientCallback<List>() {
@Override
public List doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.queryForList(statementName, parameterObject);
}
});
}
@Override
public List queryForList(String statementName, int skipResults, int maxResults)
throws DataAccessException {
return queryForList(statementName, null, skipResults, maxResults);
}
@Override
public List queryForList(
final String statementName, final Object parameterObject, final int skipResults, final int maxResults)
throws DataAccessException {
return execute(new SqlMapClientCallback<List>() {
@Override
public List doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.queryForList(statementName, parameterObject, skipResults, maxResults);
}
});
}
@Override
public void queryWithRowHandler(String statementName, RowHandler rowHandler)
throws DataAccessException {
queryWithRowHandler(statementName, null, rowHandler);
}
@Override
public void queryWithRowHandler(
final String statementName, final Object parameterObject, final RowHandler rowHandler)
throws DataAccessException {
execute(new SqlMapClientCallback<Object>() {
@Override
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
executor.queryWithRowHandler(statementName, parameterObject, rowHandler);
return null;
@@ -335,56 +349,67 @@ public class SqlMapClientTemplate extends JdbcAccessor implements SqlMapClientOp
});
}
@Override
public Map queryForMap(
final String statementName, final Object parameterObject, final String keyProperty)
throws DataAccessException {
return execute(new SqlMapClientCallback<Map>() {
@Override
public Map doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.queryForMap(statementName, parameterObject, keyProperty);
}
});
}
@Override
public Map queryForMap(
final String statementName, final Object parameterObject, final String keyProperty, final String valueProperty)
throws DataAccessException {
return execute(new SqlMapClientCallback<Map>() {
@Override
public Map doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.queryForMap(statementName, parameterObject, keyProperty, valueProperty);
}
});
}
@Override
public Object insert(String statementName) throws DataAccessException {
return insert(statementName, null);
}
@Override
public Object insert(final String statementName, final Object parameterObject)
throws DataAccessException {
return execute(new SqlMapClientCallback<Object>() {
@Override
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.insert(statementName, parameterObject);
}
});
}
@Override
public int update(String statementName) throws DataAccessException {
return update(statementName, null);
}
@Override
public int update(final String statementName, final Object parameterObject)
throws DataAccessException {
return execute(new SqlMapClientCallback<Integer>() {
@Override
public Integer doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.update(statementName, parameterObject);
}
});
}
@Override
public void update(String statementName, Object parameterObject, int requiredRowsAffected)
throws DataAccessException {
@@ -395,20 +420,24 @@ public class SqlMapClientTemplate extends JdbcAccessor implements SqlMapClientOp
}
}
@Override
public int delete(String statementName) throws DataAccessException {
return delete(statementName, null);
}
@Override
public int delete(final String statementName, final Object parameterObject)
throws DataAccessException {
return execute(new SqlMapClientCallback<Integer>() {
@Override
public Integer doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
return executor.delete(statementName, parameterObject);
}
});
}
@Override
public void delete(String statementName, Object parameterObject, int requiredRowsAffected)
throws DataAccessException {

View File

@@ -91,6 +91,7 @@ public abstract class AbstractLobTypeHandler extends BaseTypeHandler {
* LobHandler of this type.
* @see #setParameterInternal
*/
@Override
public final void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType)
throws SQLException {
@@ -116,6 +117,7 @@ public abstract class AbstractLobTypeHandler extends BaseTypeHandler {
* @see #getResult(java.sql.ResultSet, String)
* @see java.sql.ResultSet#findColumn
*/
@Override
public final Object getResult(ResultSet rs, String columnName) throws SQLException {
return getResult(rs, rs.findColumn(columnName));
}
@@ -125,6 +127,7 @@ public abstract class AbstractLobTypeHandler extends BaseTypeHandler {
* passing in the LobHandler of this type.
* @see #getResultInternal
*/
@Override
public final Object getResult(ResultSet rs, int columnIndex) throws SQLException {
try {
return getResultInternal(rs, columnIndex, this.lobHandler);
@@ -139,6 +142,7 @@ public abstract class AbstractLobTypeHandler extends BaseTypeHandler {
* This implementation always throws a SQLException:
* retrieving LOBs from a CallableStatement is not supported.
*/
@Override
public Object getResult(CallableStatement cs, int columnIndex) throws SQLException {
throw new SQLException("Retrieving LOBs from a CallableStatement is not supported");
}

View File

@@ -70,6 +70,7 @@ public class BlobByteArrayTypeHandler extends AbstractLobTypeHandler {
return lobHandler.getBlobAsBytes(rs, index);
}
@Override
public Object valueOf(String s) {
return s.getBytes();
}

View File

@@ -106,6 +106,7 @@ public class BlobSerializableTypeHandler extends AbstractLobTypeHandler {
}
}
@Override
public Object valueOf(String s) {
return s;
}

View File

@@ -73,6 +73,7 @@ public class ClobStringTypeHandler extends AbstractLobTypeHandler {
return lobHandler.getClobAsString(rs, index);
}
@Override
public Object valueOf(String s) {
return s;
}

View File

@@ -128,6 +128,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl
* @see javax.jdo.Transaction#begin
* @see org.springframework.transaction.InvalidIsolationLevelException
*/
@Override
public Object beginTransaction(Transaction transaction, TransactionDefinition definition)
throws JDOException, SQLException, TransactionException {
@@ -145,6 +146,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl
* does not require any cleanup.
* @see #beginTransaction
*/
@Override
public void cleanupTransaction(Object transactionData) {
}
@@ -169,6 +171,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl
* @see org.springframework.jdbc.support.nativejdbc.NativeJdbcExtractor
* @see org.springframework.jdbc.datasource.DataSourceUtils#releaseConnection
*/
@Override
public ConnectionHandle getJdbcConnection(PersistenceManager pm, boolean readOnly)
throws JDOException, SQLException {
@@ -183,6 +186,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl
* {@code Connection.close} here.
* @see java.sql.Connection#close()
*/
@Override
public void releaseJdbcConnection(ConnectionHandle conHandle, PersistenceManager pm)
throws JDOException, SQLException {
}
@@ -193,6 +197,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl
* "javax.persistence.query.timeout", assuming that JDO providers are often
* JPA providers as well.
*/
@Override
public void applyQueryTimeout(Query query, int remainingTimeInSeconds) throws JDOException {
if (setTimeoutMillisMethod != null) {
ReflectionUtils.invokeMethod(setTimeoutMillisMethod, query, remainingTimeInSeconds);
@@ -216,6 +221,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl
* @see org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor
* @see #translateException
*/
@Override
public DataAccessException translateExceptionIfPossible(RuntimeException ex) {
if (ex instanceof JDOException) {
return translateException((JDOException) ex);
@@ -227,6 +233,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl
* This implementation delegates to PersistenceManagerFactoryUtils.
* @see PersistenceManagerFactoryUtils#convertJdoAccessException
*/
@Override
public DataAccessException translateException(JDOException ex) {
if (getJdbcExceptionTranslator() != null && ex.getCause() instanceof SQLException) {
return getJdbcExceptionTranslator().translate("JDO operation: " + ex.getMessage(),
@@ -262,10 +269,12 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl
this.persistenceManager = persistenceManager;
}
@Override
public Connection getConnection() {
return (Connection) this.persistenceManager.getDataStoreConnection();
}
@Override
public void releaseConnection(Connection con) {
JdbcUtils.closeConnection(con);
}

View File

@@ -131,6 +131,7 @@ public abstract class JdoAccessor implements InitializingBean {
* Eagerly initialize the JDO dialect, creating a default one
* for the specified PersistenceManagerFactory if none set.
*/
@Override
public void afterPropertiesSet() {
if (getPersistenceManagerFactory() == null) {
throw new IllegalArgumentException("Property 'persistenceManagerFactory' is required");

View File

@@ -90,6 +90,7 @@ public class JdoInterceptor extends JdoAccessor implements MethodInterceptor {
}
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
boolean existingTransaction = false;
PersistenceManager pm = PersistenceManagerFactoryUtils.getPersistenceManager(getPersistenceManagerFactory(), true);

View File

@@ -175,10 +175,12 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}
@Override
public <T> T execute(JdoCallback<T> action) throws DataAccessException {
return execute(action, isExposeNativePersistenceManager());
}
@Override
public Collection executeFind(JdoCallback<?> action) throws DataAccessException {
Object result = execute(action, isExposeNativePersistenceManager());
if (result != null && !(result instanceof Collection)) {
@@ -262,24 +264,30 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
// Convenience methods for load, save, delete
//-------------------------------------------------------------------------
@Override
public Object getObjectById(final Object objectId) throws DataAccessException {
return execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
return pm.getObjectById(objectId, true);
}
}, true);
}
@Override
public <T> T getObjectById(final Class<T> entityClass, final Object idValue) throws DataAccessException {
return execute(new JdoCallback<T>() {
@Override
public T doInJdo(PersistenceManager pm) throws JDOException {
return pm.getObjectById(entityClass, idValue);
}
}, true);
}
@Override
public void evict(final Object entity) throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.evict(entity);
return null;
@@ -287,8 +295,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public void evictAll(final Collection entities) throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.evictAll(entities);
return null;
@@ -296,8 +306,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public void evictAll() throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.evictAll();
return null;
@@ -305,8 +317,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public void refresh(final Object entity) throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.refresh(entity);
return null;
@@ -314,8 +328,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public void refreshAll(final Collection entities) throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.refreshAll(entities);
return null;
@@ -323,8 +339,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public void refreshAll() throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.refreshAll();
return null;
@@ -332,24 +350,30 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public <T> T makePersistent(final T entity) throws DataAccessException {
return execute(new JdoCallback<T>() {
@Override
public T doInJdo(PersistenceManager pm) throws JDOException {
return pm.makePersistent(entity);
}
}, true);
}
@Override
public <T> Collection<T> makePersistentAll(final Collection<T> entities) throws DataAccessException {
return execute(new JdoCallback<Collection<T>>() {
@Override
public Collection<T> doInJdo(PersistenceManager pm) throws JDOException {
return pm.makePersistentAll(entities);
}
}, true);
}
@Override
public void deletePersistent(final Object entity) throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.deletePersistent(entity);
return null;
@@ -357,8 +381,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public void deletePersistentAll(final Collection entities) throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.deletePersistentAll(entities);
return null;
@@ -366,24 +392,30 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public <T> T detachCopy(final T entity) {
return execute(new JdoCallback<T>() {
@Override
public T doInJdo(PersistenceManager pm) throws JDOException {
return pm.detachCopy(entity);
}
}, true);
}
@Override
public <T> Collection<T> detachCopyAll(final Collection<T> entities) {
return execute(new JdoCallback<Collection<T>>() {
@Override
public Collection<T> doInJdo(PersistenceManager pm) throws JDOException {
return pm.detachCopyAll(entities);
}
}, true);
}
@Override
public void flush() throws DataAccessException {
execute(new JdoCallback<Object>() {
@Override
public Object doInJdo(PersistenceManager pm) throws JDOException {
pm.flush();
return null;
@@ -396,18 +428,22 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
// Convenience finder methods
//-------------------------------------------------------------------------
@Override
public <T> Collection<T> find(Class<T> entityClass) throws DataAccessException {
return find(entityClass, null, null);
}
@Override
public <T> Collection<T> find(Class<T> entityClass, String filter) throws DataAccessException {
return find(entityClass, filter, null);
}
@Override
public <T> Collection<T> find(final Class<T> entityClass, final String filter, final String ordering)
throws DataAccessException {
return execute(new JdoCallback<Collection<T>>() {
@Override
@SuppressWarnings("unchecked")
public Collection<T> doInJdo(PersistenceManager pm) throws JDOException {
Query query = (filter != null ? pm.newQuery(entityClass, filter) : pm.newQuery(entityClass));
@@ -420,17 +456,20 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public <T> Collection<T> find(Class<T> entityClass, String filter, String parameters, Object... values)
throws DataAccessException {
return find(entityClass, filter, parameters, values, null);
}
@Override
public <T> Collection<T> find(
final Class<T> entityClass, final String filter, final String parameters, final Object[] values,
final String ordering) throws DataAccessException {
return execute(new JdoCallback<Collection<T>>() {
@Override
@SuppressWarnings("unchecked")
public Collection<T> doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newQuery(entityClass, filter);
@@ -444,6 +483,7 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public <T> Collection<T> find(
Class<T> entityClass, String filter, String parameters, Map<String, ?> values)
throws DataAccessException {
@@ -451,11 +491,13 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
return find(entityClass, filter, parameters, values, null);
}
@Override
public <T> Collection<T> find(
final Class<T> entityClass, final String filter, final String parameters,
final Map<String, ?> values, final String ordering) throws DataAccessException {
return execute(new JdoCallback<Collection<T>>() {
@Override
@SuppressWarnings("unchecked")
public Collection<T> doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newQuery(entityClass, filter);
@@ -469,8 +511,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public Collection find(final String language, final Object queryObject) throws DataAccessException {
return execute(new JdoCallback<Collection>() {
@Override
public Collection doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newQuery(language, queryObject);
prepareQuery(query);
@@ -479,8 +523,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public Collection find(final String queryString) throws DataAccessException {
return execute(new JdoCallback<Collection>() {
@Override
@SuppressWarnings("unchecked")
public Collection doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newQuery(queryString);
@@ -490,8 +536,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public Collection find(final String queryString, final Object... values) throws DataAccessException {
return execute(new JdoCallback<Collection>() {
@Override
public Collection doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newQuery(queryString);
prepareQuery(query);
@@ -500,8 +548,10 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public Collection find(final String queryString, final Map<String, ?> values) throws DataAccessException {
return execute(new JdoCallback<Collection>() {
@Override
public Collection doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newQuery(queryString);
prepareQuery(query);
@@ -510,10 +560,12 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public <T> Collection<T> findByNamedQuery(final Class<T> entityClass, final String queryName)
throws DataAccessException {
return execute(new JdoCallback<Collection<T>>() {
@Override
@SuppressWarnings("unchecked")
public Collection<T> doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newNamedQuery(entityClass, queryName);
@@ -523,10 +575,12 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public <T> Collection<T> findByNamedQuery(final Class<T> entityClass, final String queryName, final Object... values)
throws DataAccessException {
return execute(new JdoCallback<Collection<T>>() {
@Override
@SuppressWarnings("unchecked")
public Collection<T> doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newNamedQuery(entityClass, queryName);
@@ -536,11 +590,13 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
}, true);
}
@Override
public <T> Collection<T> findByNamedQuery(
final Class<T> entityClass, final String queryName, final Map<String, ?> values)
throws DataAccessException {
return execute(new JdoCallback<Collection<T>>() {
@Override
@SuppressWarnings("unchecked")
public Collection<T> doInJdo(PersistenceManager pm) throws JDOException {
Query query = pm.newNamedQuery(entityClass, queryName);
@@ -585,6 +641,7 @@ public class JdoTemplate extends JdoAccessor implements JdoOperations {
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on PersistenceManager interface (or provider-specific extension) coming in...

View File

@@ -232,6 +232,7 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager
* for the specified PersistenceManagerFactory if none set.
* Auto-detect the PersistenceManagerFactory's DataSource, if any.
*/
@Override
public void afterPropertiesSet() {
if (getPersistenceManagerFactory() == null) {
throw new IllegalArgumentException("Property 'persistenceManagerFactory' is required");
@@ -256,6 +257,7 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager
}
@Override
public Object getResourceFactory() {
return getPersistenceManagerFactory();
}
@@ -571,11 +573,13 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager
}
}
@Override
public boolean isRollbackOnly() {
Transaction tx = this.persistenceManagerHolder.getPersistenceManager().currentTransaction();
return tx.getRollbackOnly();
}
@Override
public void flush() {
try {
this.persistenceManagerHolder.getPersistenceManager().flush();

View File

@@ -196,6 +196,7 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean<Persisten
this.jdoDialect = jdoDialect;
}
@Override
public void setBeanClassLoader(ClassLoader beanClassLoader) {
this.beanClassLoader = beanClassLoader;
}
@@ -207,6 +208,7 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean<Persisten
* @throws IOException if the properties could not be loaded from the given location
* @throws JDOException in case of JDO initialization errors
*/
@Override
public void afterPropertiesSet() throws IllegalArgumentException, IOException, JDOException {
if (this.persistenceManagerFactoryName != null) {
if (this.configLocation != null || !this.jdoPropertyMap.isEmpty()) {
@@ -275,15 +277,18 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean<Persisten
/**
* Return the singleton PersistenceManagerFactory.
*/
@Override
public PersistenceManagerFactory getObject() {
return this.persistenceManagerFactory;
}
@Override
public Class<? extends PersistenceManagerFactory> getObjectType() {
return (this.persistenceManagerFactory != null ?
this.persistenceManagerFactory.getClass() : PersistenceManagerFactory.class);
}
@Override
public boolean isSingleton() {
return true;
}
@@ -298,6 +303,7 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean<Persisten
* @see JdoDialect#translateException
* @see PersistenceManagerFactoryUtils#convertJdoAccessException
*/
@Override
public DataAccessException translateExceptionIfPossible(RuntimeException ex) {
if (ex instanceof JDOException) {
if (this.jdoDialect != null) {
@@ -314,6 +320,7 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean<Persisten
/**
* Close the PersistenceManagerFactory on bean factory shutdown.
*/
@Override
public void destroy() {
logger.info("Closing JDO PersistenceManagerFactory");
this.persistenceManagerFactory.close();

View File

@@ -304,6 +304,7 @@ public abstract class PersistenceManagerFactoryUtils {
this.newPersistenceManager = newPersistenceManager;
}
@Override
public int getOrder() {
return PERSISTENCE_MANAGER_SYNCHRONIZATION_ORDER;
}

View File

@@ -122,14 +122,17 @@ public class TransactionAwarePersistenceManagerFactoryProxy implements FactoryBe
}
@Override
public PersistenceManagerFactory getObject() {
return this.proxy;
}
@Override
public Class<? extends PersistenceManagerFactory> getObjectType() {
return PersistenceManagerFactory.class;
}
@Override
public boolean isSingleton() {
return true;
}
@@ -142,6 +145,7 @@ public class TransactionAwarePersistenceManagerFactoryProxy implements FactoryBe
*/
private class PersistenceManagerFactoryInvocationHandler implements InvocationHandler {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on PersistenceManagerFactory interface coming in...
@@ -188,6 +192,7 @@ public class TransactionAwarePersistenceManagerFactoryProxy implements FactoryBe
this.persistenceManagerFactory = pmf;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on PersistenceManager interface coming in...

View File

@@ -89,6 +89,7 @@ public class OpenPersistenceManagerInViewInterceptor implements WebRequestInterc
}
@Override
public void preHandle(WebRequest request) throws DataAccessException {
if (TransactionSynchronizationManager.hasResource(getPersistenceManagerFactory())) {
// Do not modify the PersistenceManager: just mark the request accordingly.
@@ -106,9 +107,11 @@ public class OpenPersistenceManagerInViewInterceptor implements WebRequestInterc
}
}
@Override
public void postHandle(WebRequest request, ModelMap model) {
}
@Override
public void afterCompletion(WebRequest request, Exception ex) throws DataAccessException {
String participateAttributeName = getParticipateAttributeName();
Integer count = (Integer) request.getAttribute(participateAttributeName, WebRequest.SCOPE_REQUEST);

View File

@@ -144,6 +144,7 @@ public class SpringPersistenceManagerProxyBean implements FactoryBean<Persistenc
return this.allowCreate;
}
@Override
public void afterPropertiesSet() {
if (getPersistenceManagerFactory() == null) {
throw new IllegalArgumentException("Property 'persistenceManagerFactory' is required");
@@ -158,14 +159,17 @@ public class SpringPersistenceManagerProxyBean implements FactoryBean<Persistenc
}
@Override
public PersistenceManager getObject() {
return this.proxy;
}
@Override
public Class<? extends PersistenceManager> getObjectType() {
return getPersistenceManagerInterface();
}
@Override
public boolean isSingleton() {
return true;
}
@@ -177,6 +181,7 @@ public class SpringPersistenceManagerProxyBean implements FactoryBean<Persistenc
*/
private class PersistenceManagerInvocationHandler implements InvocationHandler {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on PersistenceManager interface coming in...

View File

@@ -57,14 +57,17 @@ public class StandardPersistenceManagerProxyBean implements FactoryBean<Persiste
}
@Override
public PersistenceManager getObject() {
return this.proxy;
}
@Override
public Class<? extends PersistenceManager> getObjectType() {
return (this.proxy != null ? this.proxy.getClass() : PersistenceManager.class);
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -142,6 +142,7 @@ public abstract class AbstractEntityManagerFactoryBean implements
this.persistenceProvider = persistenceProvider;
}
@Override
public PersistenceProvider getPersistenceProvider() {
return this.persistenceProvider;
}
@@ -157,6 +158,7 @@ public abstract class AbstractEntityManagerFactoryBean implements
this.persistenceUnitName = persistenceUnitName;
}
@Override
public String getPersistenceUnitName() {
return this.persistenceUnitName;
}
@@ -223,6 +225,7 @@ public abstract class AbstractEntityManagerFactoryBean implements
this.entityManagerInterface = emInterface;
}
@Override
public Class<? extends EntityManager> getEntityManagerInterface() {
return this.entityManagerInterface;
}
@@ -238,6 +241,7 @@ public abstract class AbstractEntityManagerFactoryBean implements
this.jpaDialect = jpaDialect;
}
@Override
public JpaDialect getJpaDialect() {
return this.jpaDialect;
}
@@ -260,23 +264,28 @@ public abstract class AbstractEntityManagerFactoryBean implements
return this.jpaVendorAdapter;
}
@Override
public void setBeanClassLoader(ClassLoader classLoader) {
this.beanClassLoader = classLoader;
}
@Override
public ClassLoader getBeanClassLoader() {
return this.beanClassLoader;
}
@Override
public void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
@Override
public void setBeanName(String name) {
this.beanName = name;
}
@Override
public final void afterPropertiesSet() throws PersistenceException {
if (this.jpaVendorAdapter != null) {
if (this.persistenceProvider == null) {
@@ -399,19 +408,23 @@ public abstract class AbstractEntityManagerFactoryBean implements
* @see JpaDialect#translateExceptionIfPossible
* @see EntityManagerFactoryUtils#convertJpaAccessExceptionIfPossible
*/
@Override
public DataAccessException translateExceptionIfPossible(RuntimeException ex) {
return (this.jpaDialect != null ? this.jpaDialect.translateExceptionIfPossible(ex) :
EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(ex));
}
@Override
public EntityManagerFactory getNativeEntityManagerFactory() {
return this.nativeEntityManagerFactory;
}
@Override
public PersistenceUnitInfo getPersistenceUnitInfo() {
return null;
}
@Override
public DataSource getDataSource() {
return null;
}
@@ -420,14 +433,17 @@ public abstract class AbstractEntityManagerFactoryBean implements
/**
* Return the singleton EntityManagerFactory.
*/
@Override
public EntityManagerFactory getObject() {
return this.entityManagerFactory;
}
@Override
public Class<? extends EntityManagerFactory> getObjectType() {
return (this.entityManagerFactory != null ? this.entityManagerFactory.getClass() : EntityManagerFactory.class);
}
@Override
public boolean isSingleton() {
return true;
}
@@ -436,6 +452,7 @@ public abstract class AbstractEntityManagerFactoryBean implements
/**
* Close the EntityManagerFactory on bean factory shutdown.
*/
@Override
public void destroy() {
if (logger.isInfoEnabled()) {
logger.info("Closing JPA EntityManagerFactory for persistence unit '" + getPersistenceUnitName() + "'");
@@ -499,6 +516,7 @@ public abstract class AbstractEntityManagerFactoryBean implements
this.entityManagerFactoryBean = emfb;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
try {
if (method.getName().equals("equals")) {

View File

@@ -60,6 +60,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable {
* @see org.springframework.transaction.InvalidIsolationLevelException
* @see #cleanupTransaction
*/
@Override
public Object beginTransaction(EntityManager entityManager, TransactionDefinition definition)
throws PersistenceException, SQLException, TransactionException {
@@ -72,6 +73,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable {
return null;
}
@Override
public Object prepareTransaction(EntityManager entityManager, boolean readOnly, String name)
throws PersistenceException {
@@ -83,6 +85,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable {
* implementation does not require any cleanup.
* @see #beginTransaction
*/
@Override
public void cleanupTransaction(Object transactionData) {
}
@@ -90,6 +93,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable {
* This implementation always returns {@code null},
* indicating that no JDBC Connection can be provided.
*/
@Override
public ConnectionHandle getJdbcConnection(EntityManager entityManager, boolean readOnly)
throws PersistenceException, SQLException {
@@ -104,6 +108,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable {
* {@code Connection.close()} (or some other method with similar effect) here.
* @see java.sql.Connection#close()
*/
@Override
public void releaseJdbcConnection(ConnectionHandle conHandle, EntityManager em)
throws PersistenceException, SQLException {
}
@@ -117,23 +122,28 @@ public class DefaultJpaDialect implements JpaDialect, Serializable {
* This implementation delegates to EntityManagerFactoryUtils.
* @see EntityManagerFactoryUtils#convertJpaAccessExceptionIfPossible
*/
@Override
public DataAccessException translateExceptionIfPossible(RuntimeException ex) {
return EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(ex);
}
@Override
public boolean supportsEntityManagerFactoryPlusOperations() {
return false;
}
@Override
public boolean supportsEntityManagerPlusOperations() {
return false;
}
@Override
public EntityManagerFactoryPlusOperations getEntityManagerFactoryPlusOperations(EntityManagerFactory rawEntityManager) {
throw new UnsupportedOperationException(getClass().getName() + " does not support EntityManagerFactoryPlusOperations");
}
@Override
public EntityManagerPlusOperations getEntityManagerPlusOperations(EntityManager rawEntityManager) {
throw new UnsupportedOperationException(getClass().getName() + " does not support EntityManagerPlusOperations");
}

View File

@@ -129,6 +129,7 @@ public abstract class EntityManagerFactoryAccessor implements BeanFactoryAware {
* Falls back to a default EntityManagerFactory bean if no persistence unit specified.
* @see #setPersistenceUnitName
*/
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
if (getEntityManagerFactory() == null) {
if (!(beanFactory instanceof ListableBeanFactory)) {

View File

@@ -372,6 +372,7 @@ public abstract class EntityManagerFactoryUtils {
this.newEntityManager = newEm;
}
@Override
public int getOrder() {
return ENTITY_MANAGER_SYNCHRONIZATION_ORDER;
}

View File

@@ -309,6 +309,7 @@ public abstract class ExtendedEntityManagerCreator {
}
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on EntityManager interface coming in...
@@ -452,6 +453,7 @@ public abstract class ExtendedEntityManagerCreator {
this.exceptionTranslator = exceptionTranslator;
}
@Override
public int getOrder() {
return EntityManagerFactoryUtils.ENTITY_MANAGER_SYNCHRONIZATION_ORDER + 1;
}

View File

@@ -112,6 +112,7 @@ public abstract class JpaAccessor extends EntityManagerFactoryAccessor implement
* Eagerly initialize the JPA dialect, creating a default one
* for the specified EntityManagerFactory if none set.
*/
@Override
public void afterPropertiesSet() {
EntityManagerFactory emf = getEntityManagerFactory();
if (emf == null && getEntityManager() == null) {

View File

@@ -85,6 +85,7 @@ public class JpaInterceptor extends JpaAccessor implements MethodInterceptor {
}
@Override
public Object invoke(MethodInvocation methodInvocation) throws Throwable {
// Determine current EntityManager: either the transactional one
// managed by the factory or a temporary one for the given invocation.

View File

@@ -146,10 +146,12 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
}
@Override
public <T> T execute(JpaCallback<T> action) throws DataAccessException {
return execute(action, isExposeNativeEntityManager());
}
@Override
public List executeFind(JpaCallback<?> action) throws DataAccessException {
Object result = execute(action, isExposeNativeEntityManager());
if (!(result instanceof List)) {
@@ -229,32 +231,40 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
// Convenience methods for load, save, delete
//-------------------------------------------------------------------------
@Override
public <T> T find(final Class<T> entityClass, final Object id) throws DataAccessException {
return execute(new JpaCallback<T>() {
@Override
public T doInJpa(EntityManager em) throws PersistenceException {
return em.find(entityClass, id);
}
}, true);
}
@Override
public <T> T getReference(final Class<T> entityClass, final Object id) throws DataAccessException {
return execute(new JpaCallback<T>() {
@Override
public T doInJpa(EntityManager em) throws PersistenceException {
return em.getReference(entityClass, id);
}
}, true);
}
@Override
public boolean contains(final Object entity) throws DataAccessException {
return execute(new JpaCallback<Boolean>() {
@Override
public Boolean doInJpa(EntityManager em) throws PersistenceException {
return em.contains(entity);
}
}, true);
}
@Override
public void refresh(final Object entity) throws DataAccessException {
execute(new JpaCallback<Object>() {
@Override
public Object doInJpa(EntityManager em) throws PersistenceException {
em.refresh(entity);
return null;
@@ -262,8 +272,10 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
}, true);
}
@Override
public void persist(final Object entity) throws DataAccessException {
execute(new JpaCallback<Object>() {
@Override
public Object doInJpa(EntityManager em) throws PersistenceException {
em.persist(entity);
return null;
@@ -271,16 +283,20 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
}, true);
}
@Override
public <T> T merge(final T entity) throws DataAccessException {
return execute(new JpaCallback<T>() {
@Override
public T doInJpa(EntityManager em) throws PersistenceException {
return em.merge(entity);
}
}, true);
}
@Override
public void remove(final Object entity) throws DataAccessException {
execute(new JpaCallback<Object>() {
@Override
public Object doInJpa(EntityManager em) throws PersistenceException {
em.remove(entity);
return null;
@@ -288,8 +304,10 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
}, true);
}
@Override
public void flush() throws DataAccessException {
execute(new JpaCallback<Object>() {
@Override
public Object doInJpa(EntityManager em) throws PersistenceException {
em.flush();
return null;
@@ -302,12 +320,15 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
// Convenience finder methods
//-------------------------------------------------------------------------
@Override
public List find(String queryString) throws DataAccessException {
return find(queryString, (Object[]) null);
}
@Override
public List find(final String queryString, final Object... values) throws DataAccessException {
return execute(new JpaCallback<List>() {
@Override
public List doInJpa(EntityManager em) throws PersistenceException {
Query queryObject = em.createQuery(queryString);
prepareQuery(queryObject);
@@ -321,8 +342,10 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
});
}
@Override
public List findByNamedParams(final String queryString, final Map<String, ?> params) throws DataAccessException {
return execute(new JpaCallback<List>() {
@Override
public List doInJpa(EntityManager em) throws PersistenceException {
Query queryObject = em.createQuery(queryString);
prepareQuery(queryObject);
@@ -336,12 +359,15 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
});
}
@Override
public List findByNamedQuery(String queryName) throws DataAccessException {
return findByNamedQuery(queryName, (Object[]) null);
}
@Override
public List findByNamedQuery(final String queryName, final Object... values) throws DataAccessException {
return execute(new JpaCallback<List>() {
@Override
public List doInJpa(EntityManager em) throws PersistenceException {
Query queryObject = em.createNamedQuery(queryName);
prepareQuery(queryObject);
@@ -355,10 +381,12 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
});
}
@Override
public List findByNamedQueryAndNamedParams(final String queryName, final Map<String, ?> params)
throws DataAccessException {
return execute(new JpaCallback<List>() {
@Override
public List doInJpa(EntityManager em) throws PersistenceException {
Query queryObject = em.createNamedQuery(queryName);
prepareQuery(queryObject);
@@ -408,6 +436,7 @@ public class JpaTemplate extends JpaAccessor implements JpaOperations {
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on EntityManager interface (or provider-specific extension) coming in...

View File

@@ -282,6 +282,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
* Falls back to a default EntityManagerFactory bean if no persistence unit specified.
* @see #setPersistenceUnitName
*/
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
if (getEntityManagerFactory() == null) {
if (!(beanFactory instanceof ListableBeanFactory)) {
@@ -298,6 +299,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
* for the specified EntityManagerFactory if none set.
* Auto-detect the EntityManagerFactory's DataSource, if any.
*/
@Override
public void afterPropertiesSet() {
if (getEntityManagerFactory() == null) {
throw new IllegalArgumentException("'entityManagerFactory' or 'persistenceUnitName' is required");
@@ -316,6 +318,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
}
@Override
public Object getResourceFactory() {
return getEntityManagerFactory();
}
@@ -653,11 +656,13 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
}
}
@Override
public boolean isRollbackOnly() {
EntityTransaction tx = this.entityManagerHolder.getEntityManager().getTransaction();
return tx.getRollbackOnly();
}
@Override
public void flush() {
try {
this.entityManagerHolder.getEntityManager().flush();

View File

@@ -240,10 +240,12 @@ public class LocalContainerEntityManagerFactoryBean extends AbstractEntityManage
* @see org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
* @see org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader
*/
@Override
public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) {
this.internalPersistenceUnitManager.setLoadTimeWeaver(loadTimeWeaver);
}
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.internalPersistenceUnitManager.setResourceLoader(resourceLoader);
}

View File

@@ -152,6 +152,7 @@ public abstract class SharedEntityManagerCreator {
}
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on EntityManager interface coming in...
@@ -287,6 +288,7 @@ public abstract class SharedEntityManagerCreator {
this.em = em;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// Invocation on Query interface coming in...

View File

@@ -48,6 +48,7 @@ class ClassFileTransformerAdapter implements ClassFileTransformer {
}
@Override
public byte[] transform(
ClassLoader loader, String className, Class<?> classBeingRedefined,
ProtectionDomain protectionDomain, byte[] classfileBuffer) {

View File

@@ -322,6 +322,7 @@ public class DefaultPersistenceUnitManager
* @see org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
* @see org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader
*/
@Override
public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) {
this.loadTimeWeaver = loadTimeWeaver;
}
@@ -334,11 +335,13 @@ public class DefaultPersistenceUnitManager
return this.loadTimeWeaver;
}
@Override
public void setResourceLoader(ResourceLoader resourceLoader) {
this.resourcePatternResolver = ResourcePatternUtils.getResourcePatternResolver(resourceLoader);
}
@Override
public void afterPropertiesSet() {
if (this.loadTimeWeaver == null && InstrumentationLoadTimeWeaver.isInstrumentationAvailable()) {
this.loadTimeWeaver = new InstrumentationLoadTimeWeaver(this.resourcePatternResolver.getClassLoader());
@@ -542,6 +545,7 @@ public class DefaultPersistenceUnitManager
}
@Override
public PersistenceUnitInfo obtainDefaultPersistenceUnitInfo() {
if (this.persistenceUnitInfoNames.isEmpty()) {
throw new IllegalStateException("No persistence units parsed from " +
@@ -559,6 +563,7 @@ public class DefaultPersistenceUnitManager
return pui;
}
@Override
public PersistenceUnitInfo obtainPersistenceUnitInfo(String persistenceUnitName) {
PersistenceUnitInfo pui = this.persistenceUnitInfos.remove(persistenceUnitName);
if (pui == null) {
@@ -606,6 +611,7 @@ public class DefaultPersistenceUnitManager
return this.target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if (method.getName().equals("getSharedCacheMode")) {
return Enum.valueOf(this.sharedCacheModeEnum, this.target.getSharedCacheModeName());

View File

@@ -72,6 +72,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.persistenceUnitName = persistenceUnitName;
}
@Override
public String getPersistenceUnitName() {
return this.persistenceUnitName;
}
@@ -80,6 +81,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.persistenceProviderClassName = persistenceProviderClassName;
}
@Override
public String getPersistenceProviderClassName() {
return this.persistenceProviderClassName;
}
@@ -88,6 +90,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.transactionType = transactionType;
}
@Override
public PersistenceUnitTransactionType getTransactionType() {
if (this.transactionType != null) {
return this.transactionType;
@@ -102,6 +105,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.jtaDataSource = jtaDataSource;
}
@Override
public DataSource getJtaDataSource() {
return this.jtaDataSource;
}
@@ -110,6 +114,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.nonJtaDataSource = nonJtaDataSource;
}
@Override
public DataSource getNonJtaDataSource() {
return this.nonJtaDataSource;
}
@@ -118,6 +123,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.mappingFileNames.add(mappingFileName);
}
@Override
public List<String> getMappingFileNames() {
return this.mappingFileNames;
}
@@ -126,6 +132,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.jarFileUrls.add(jarFileUrl);
}
@Override
public List<URL> getJarFileUrls() {
return this.jarFileUrls;
}
@@ -134,6 +141,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.persistenceUnitRootUrl = persistenceUnitRootUrl;
}
@Override
public URL getPersistenceUnitRootUrl() {
return this.persistenceUnitRootUrl;
}
@@ -142,6 +150,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.managedClassNames.add(managedClassName);
}
@Override
public List<String> getManagedClassNames() {
return this.managedClassNames;
}
@@ -150,6 +159,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.excludeUnlistedClasses = excludeUnlistedClasses;
}
@Override
public boolean excludeUnlistedClasses() {
return this.excludeUnlistedClasses;
}
@@ -165,6 +175,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
this.properties = properties;
}
@Override
public Properties getProperties() {
return this.properties;
}
@@ -177,6 +188,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
return this.persistenceXMLSchemaVersion;
}
@Override
public void setPersistenceProviderPackageName(String persistenceProviderPackageName) {
this.persistenceProviderPackageName = persistenceProviderPackageName;
}
@@ -190,6 +202,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
* This implementation returns the default ClassLoader.
* @see org.springframework.util.ClassUtils#getDefaultClassLoader()
*/
@Override
public ClassLoader getClassLoader() {
return ClassUtils.getDefaultClassLoader();
}
@@ -197,6 +210,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
/**
* This implementation throws an UnsupportedOperationException.
*/
@Override
public void addTransformer(ClassTransformer classTransformer) {
throw new UnsupportedOperationException("addTransformer not supported");
}
@@ -204,6 +218,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
/**
* This implementation throws an UnsupportedOperationException.
*/
@Override
public ClassLoader getNewTempClassLoader() {
throw new UnsupportedOperationException("getNewTempClassLoader not supported");
}

View File

@@ -73,6 +73,7 @@ public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAcce
public static final String PARTICIPATE_SUFFIX = ".PARTICIPATE";
@Override
public void preHandle(WebRequest request) throws DataAccessException {
String participateAttributeName = getParticipateAttributeName();
@@ -106,9 +107,11 @@ public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAcce
}
}
@Override
public void postHandle(WebRequest request, ModelMap model) {
}
@Override
public void afterCompletion(WebRequest request, Exception ex) throws DataAccessException {
if (!decrementParticipateCount(request)) {
EntityManagerHolder emHolder = (EntityManagerHolder)
@@ -134,6 +137,7 @@ public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAcce
return true;
}
@Override
public void afterConcurrentHandlingStarted(WebRequest request) {
if (!decrementParticipateCount(request)) {
TransactionSynchronizationManager.unbindResource(getEntityManagerFactory());

View File

@@ -306,10 +306,12 @@ public class PersistenceAnnotationBeanPostProcessor
this.order = order;
}
@Override
public int getOrder() {
return this.order;
}
@Override
public void setBeanFactory(BeanFactory beanFactory) {
if (beanFactory instanceof ListableBeanFactory) {
this.beanFactory = (ListableBeanFactory) beanFactory;
@@ -317,6 +319,7 @@ public class PersistenceAnnotationBeanPostProcessor
}
@Override
public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class<?> beanType, String beanName) {
if (beanType != null) {
InjectionMetadata metadata = findPersistenceMetadata(beanType);
@@ -324,14 +327,17 @@ public class PersistenceAnnotationBeanPostProcessor
}
}
@Override
public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException {
return null;
}
@Override
public boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException {
return true;
}
@Override
public PropertyValues postProcessPropertyValues(
PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeansException {
@@ -345,14 +351,17 @@ public class PersistenceAnnotationBeanPostProcessor
return pvs;
}
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Override
public void postProcessBeforeDestruction(Object bean, String beanName) throws BeansException {
EntityManager emToClose = this.extendedEntityManagersToClose.remove(bean);
EntityManagerFactoryUtils.closeEntityManager(emToClose);

View File

@@ -73,6 +73,7 @@ public class SharedEntityManagerBean extends EntityManagerFactoryAccessor
}
@Override
public final void afterPropertiesSet() {
EntityManagerFactory emf = getEntityManagerFactory();
if (emf == null) {
@@ -105,14 +106,17 @@ public class SharedEntityManagerBean extends EntityManagerFactoryAccessor
}
@Override
public EntityManager getObject() {
return this.shared;
}
@Override
public Class<? extends EntityManager> getObjectType() {
return (this.entityManagerInterface != null ? this.entityManagerInterface : EntityManager.class);
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -110,22 +110,27 @@ public abstract class AbstractJpaVendorAdapter implements JpaVendorAdapter {
}
@Override
public String getPersistenceProviderRootPackage() {
return null;
}
@Override
public Map<String, ?> getJpaPropertyMap() {
return null;
}
@Override
public JpaDialect getJpaDialect() {
return null;
}
@Override
public Class<? extends EntityManagerFactory> getEntityManagerFactoryInterface() {
return EntityManagerFactory.class;
}
@Override
public Class<? extends EntityManager> getEntityManagerInterface() {
return EntityManager.class;
}
@@ -134,6 +139,7 @@ public abstract class AbstractJpaVendorAdapter implements JpaVendorAdapter {
* Post-process the EntityManagerFactory after it has been initialized.
* @param emf the EntityManagerFactory to process
*/
@Override
public void postProcessEntityManagerFactory(EntityManagerFactory emf) {
}

View File

@@ -56,6 +56,7 @@ public class EclipseLinkJpaVendorAdapter extends AbstractJpaVendorAdapter {
private final JpaDialect jpaDialect = new EclipseLinkJpaDialect();
@Override
public PersistenceProvider getPersistenceProvider() {
return this.persistenceProvider;
}

View File

@@ -153,6 +153,7 @@ public class HibernateJpaDialect extends DefaultJpaDialect {
this.session = session;
}
@Override
public Connection getConnection() {
try {
if (connectionMethod == null) {
@@ -166,6 +167,7 @@ public class HibernateJpaDialect extends DefaultJpaDialect {
}
}
@Override
public void releaseConnection(Connection con) {
JdbcUtils.closeConnection(con);
}

View File

@@ -39,16 +39,19 @@ import org.springframework.util.Assert;
*/
public class HibernateJpaSessionFactoryBean extends EntityManagerFactoryAccessor implements FactoryBean<SessionFactory> {
@Override
public SessionFactory getObject() {
EntityManagerFactory emf = getEntityManagerFactory();
Assert.isInstanceOf(HibernateEntityManagerFactory.class, emf);
return ((HibernateEntityManagerFactory) emf).getSessionFactory();
}
@Override
public Class<?> getObjectType() {
return SessionFactory.class;
}
@Override
public boolean isSingleton() {
return true;
}

View File

@@ -59,6 +59,7 @@ public class HibernateJpaVendorAdapter extends AbstractJpaVendorAdapter {
private final JpaDialect jpaDialect = new HibernateJpaDialect();
@Override
public PersistenceProvider getPersistenceProvider() {
return this.persistenceProvider;
}

View File

@@ -88,6 +88,7 @@ public class OpenJpaDialect extends DefaultJpaDialect {
this.entityManager = entityManager;
}
@Override
public Object createSavepoint() throws TransactionException {
this.savepointCounter++;
String savepointName = ConnectionHolder.SAVEPOINT_NAME_PREFIX + this.savepointCounter;
@@ -95,10 +96,12 @@ public class OpenJpaDialect extends DefaultJpaDialect {
return savepointName;
}
@Override
public void rollbackToSavepoint(Object savepoint) throws TransactionException {
this.entityManager.rollbackToSavepoint((String) savepoint);
}
@Override
public void releaseSavepoint(Object savepoint) throws TransactionException {
this.entityManager.releaseSavepoint((String) savepoint);
}
@@ -120,10 +123,12 @@ public class OpenJpaDialect extends DefaultJpaDialect {
this.entityManager = entityManager;
}
@Override
public Connection getConnection() {
return (Connection) this.entityManager.getConnection();
}
@Override
public void releaseConnection(Connection con) {
JdbcUtils.closeConnection(con);
}

View File

@@ -48,6 +48,7 @@ public class OpenJpaVendorAdapter extends AbstractJpaVendorAdapter {
private final OpenJpaDialect jpaDialect = new OpenJpaDialect();
@Override
public PersistenceProvider getPersistenceProvider() {
return this.persistenceProvider;
}

View File

@@ -51,6 +51,7 @@ public class TopLinkJpaVendorAdapter extends AbstractJpaVendorAdapter {
private final JpaDialect jpaDialect = new TopLinkJpaDialect();
@Override
public PersistenceProvider getPersistenceProvider() {
return this.persistenceProvider;
}