📄 hibernatetemplate.java
字号:
public Object doInHibernate(Session session) throws HibernateException {
session.delete(entity);
return null;
}
});
}
public void delete(final Object entity, final LockMode lockMode) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
session.lock(entity, lockMode);
session.delete(entity);
return null;
}
});
}
public void deleteAll(final Collection entities) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
for (Iterator it = entities.iterator(); it.hasNext();) {
session.delete(it.next());
}
return null;
}
});
}
//-------------------------------------------------------------------------
// Convenience finder methods
//-------------------------------------------------------------------------
public List find(final String queryString) throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = createQuery(session, queryString);
return queryObject.list();
}
});
}
public List find(final String queryString, final Object value) throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = createQuery(session, queryString);
queryObject.setParameter(0, value);
return queryObject.list();
}
});
}
public List find(final String queryString, final Object value, final Type type)
throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = createQuery(session, queryString);
queryObject.setParameter(0, value, type);
return queryObject.list();
}
});
}
public List find(final String queryString, final Object[] values) throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = createQuery(session, queryString);
for (int i = 0; i < values.length; i++) {
Object value = values[i];
queryObject.setParameter(i, value);
}
return queryObject.list();
}
});
}
public List find(final String queryString, final Object[] values, final Type[] types)
throws DataAccessException {
if (values.length != types.length) {
throw new IllegalArgumentException("Length of values array must match length of types array");
}
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = createQuery(session, queryString);
for (int i = 0; i < values.length; i++) {
Object value = values[i];
queryObject.setParameter(i, value, types[i]);
}
return queryObject.list();
}
});
}
public List findByValueBean(final String queryString, final Object valueBean)
throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = createQuery(session, queryString);
queryObject.setProperties(valueBean);
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName) throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName, final Object value)
throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
queryObject.setParameter(0, value);
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName, final Object value, final Type type)
throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
queryObject.setParameter(0, value, type);
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName, final Object[] values)
throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
for (int i = 0; i < values.length; i++) {
Object value = values[i];
queryObject.setParameter(i, value);
}
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName, final Object[] values, final Type[] types)
throws DataAccessException {
if (values.length != types.length) {
throw new IllegalArgumentException("Length of values array must match length of types array");
}
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
for (int i = 0; i < values.length; i++) {
Object value = values[i];
queryObject.setParameter(i, value, types[i]);
}
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName, final String paramName, final Object value)
throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
queryObject.setParameter(paramName, value);
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName, final String paramName, final Object value, final Type type)
throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
queryObject.setParameter(paramName, value, type);
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName, final String[] paramNames, final Object[] values)
throws DataAccessException {
if (paramNames.length != values.length) {
throw new IllegalArgumentException("Length of parmNames array must match length of values array");
}
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
for (int i = 0; i < values.length; i++) {
Object value = values[i];
queryObject.setParameter(paramNames[i], value);
}
return queryObject.list();
}
});
}
public List findByNamedQuery(final String queryName, final String[] paramNames, final Object[] values,
final Type[] types) throws DataAccessException {
if (paramNames.length != values.length) {
throw new IllegalArgumentException("Length of parmNames array must match length of values array");
}
if (values.length != types.length) {
throw new IllegalArgumentException("Length of values array must match length of types array");
}
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
for (int i = 0; i < values.length; i++) {
Object value = values[i];
queryObject.setParameter(paramNames[i], value, types[i]);
}
return queryObject.list();
}
});
}
public List findByNamedQueryAndValueBean(final String queryName, final Object valueBean)
throws DataAccessException {
return executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
queryObject.setProperties(valueBean);
return queryObject.list();
}
});
}
/**
* Create a Query object for the given Session and the given query string.
* To be used within a HibernateCallback.
* <p>Applies a transaction timeout, if any. If you don't use such timeouts,
* the call is equivalent to Session.createQuery.
* @param session current Hibernate Session
* @param queryString the HQL query string
* @return the Query object
* @throws HibernateException if the Query could not be created
* @see HibernateCallback#doInHibernate
* @see net.sf.hibernate.Session#createQuery
*/
public Query createQuery(Session session, String queryString) throws HibernateException {
Query queryObject = session.createQuery(queryString);
SessionFactoryUtils.applyTransactionTimeout(queryObject, getSessionFactory());
return queryObject;
}
/**
* Create a named Query object for the given Session and the given query name.
* To be used within a HibernateCallback.
* <p>Applies a transaction timeout, if any. If you don't use such timeouts,
* the call is equivalent to Session.getNamedQuery.
* @param session current Hibernate Session
* @param queryName the name of the query in the Hibernate mapping file
* @return the Query object
* @throws HibernateException if the Query could not be created
* @see HibernateCallback#doInHibernate
* @see net.sf.hibernate.Session#getNamedQuery
*/
public Query getNamedQuery(Session session, String queryName) throws HibernateException {
Query queryObject = session.getNamedQuery(queryName);
SessionFactoryUtils.applyTransactionTimeout(queryObject, getSessionFactory());
return queryObject;
}
/**
* Create a Criteria object for the given Session and the given entity class.
* To be used within a HibernateCallback.
* <p>Applies a transaction timeout, if any. If you don't use such timeouts,
* the call is equivalent to Session.createCriteria.
* @param session current Hibernate Session
* @param entityClass the entity class to create the Criteria for
* @return the Query object
* @throws HibernateException if the Criteria could not be created
* @see HibernateCallback#doInHibernate
* @see net.sf.hibernate.Session#createCriteria
*/
public Criteria createCriteria(Session session, Class entityClass) throws HibernateException {
Criteria criteria = session.createCriteria(entityClass);
SessionFactoryUtils.applyTransactionTimeout(criteria, getSessionFactory());
return criteria;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -