hibernatetemplate.java
来自「一个关于Spring框架的示例应用程序,简单使用,可以参考.」· Java 代码 · 共 1,216 行 · 第 1/3 页
JAVA
1,216 行
}, true);
}
public List loadAll(final Class entityClass) throws DataAccessException {
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Criteria criteria = session.createCriteria(entityClass);
prepareCriteria(criteria);
return criteria.list();
}
}, true);
}
public void load(final Object entity, final Serializable id) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
session.load(entity, id);
return null;
}
}, true);
}
public void refresh(final Object entity) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
session.refresh(entity);
return null;
}
}, true);
}
public void refresh(final Object entity, final LockMode lockMode) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
session.refresh(entity, lockMode);
return null;
}
}, true);
}
public boolean contains(final Object entity) throws DataAccessException {
Boolean result = (Boolean) execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
return new Boolean(session.contains(entity));
}
}, true);
return result.booleanValue();
}
public void evict(final Object entity) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
session.evict(entity);
return null;
}
}, true);
}
public void initialize(Object proxy) throws DataAccessException {
try {
Hibernate.initialize(proxy);
}
catch (HibernateException ex) {
throw SessionFactoryUtils.convertHibernateAccessException(ex);
}
}
//-------------------------------------------------------------------------
// Convenience methods for storing individual objects
//-------------------------------------------------------------------------
public void lock(final Object entity, final LockMode lockMode) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
session.lock(entity, lockMode);
return null;
}
}, true);
}
public Serializable save(final Object entity) throws DataAccessException {
return (Serializable) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
return session.save(entity);
}
}, true);
}
public void save(final Object entity, final Serializable id) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.save(entity, id);
return null;
}
}, true);
}
public void update(final Object entity) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.update(entity);
return null;
}
}, true);
}
public void update(final Object entity, final LockMode lockMode) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.update(entity);
session.lock(entity, lockMode);
return null;
}
}, true);
}
public void saveOrUpdate(final Object entity) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.saveOrUpdate(entity);
return null;
}
}, true);
}
public void saveOrUpdateAll(final Collection entities) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
for (Iterator it = entities.iterator(); it.hasNext();) {
session.saveOrUpdate(it.next());
}
return null;
}
}, true);
}
public Object saveOrUpdateCopy(final Object entity) throws DataAccessException {
return execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
return session.saveOrUpdateCopy(entity);
}
}, true);
}
public void delete(final Object entity) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.delete(entity);
return null;
}
}, true);
}
public void delete(final Object entity, final LockMode lockMode) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
session.lock(entity, lockMode);
session.delete(entity);
return null;
}
}, true);
}
public void deleteAll(final Collection entities) throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
checkWriteOperationAllowed(session);
for (Iterator it = entities.iterator(); it.hasNext();) {
session.delete(it.next());
}
return null;
}
}, true);
}
public void flush() throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
session.flush();
return null;
}
}, true);
}
public void clear() throws DataAccessException {
execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
session.clear();
return null;
}
}, true);
}
//-------------------------------------------------------------------------
// Convenience finder methods for HQL strings
//-------------------------------------------------------------------------
public List find(final String queryString) throws DataAccessException {
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
return queryObject.list();
}
}, true);
}
public List find(String queryString, Object value) throws DataAccessException {
return find(queryString, value, null);
}
public List find(final String queryString, final Object value, final Type type)
throws DataAccessException {
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
if (type != null) {
queryObject.setParameter(0, value, type);
}
else {
queryObject.setParameter(0, value);
}
return queryObject.list();
}
}, true);
}
public List find(String queryString, Object[] values) throws DataAccessException {
return find(queryString, values, (Type[]) null);
}
public List find(final String queryString, final Object[] values, final Type[] types)
throws DataAccessException {
if (types != null && values.length != types.length) {
throw new IllegalArgumentException("Length of values array must match length of types array");
}
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
for (int i = 0; i < values.length; i++) {
if (types != null) {
queryObject.setParameter(i, values[i], types[i]);
}
else {
queryObject.setParameter(i, values[i]);
}
}
return queryObject.list();
}
}, true);
}
public List findByNamedParam(String queryString, String paramName, Object value)
throws DataAccessException {
return findByNamedParam(queryString, paramName, value, null);
}
public List findByNamedParam(
final String queryString, final String paramName, final Object value, final Type type)
throws DataAccessException {
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
applyNamedParameterToQuery(queryObject, paramName, value, type);
return queryObject.list();
}
}, true);
}
public List findByNamedParam(String queryString, String[] paramNames, Object[] values)
throws DataAccessException {
return findByNamedParam(queryString, paramNames, values, null);
}
public List findByNamedParam(
final String queryString, final String[] paramNames, final Object[] values, final Type[] types)
throws DataAccessException {
if (paramNames.length != values.length) {
throw new IllegalArgumentException("Length of paramNames array must match length of values array");
}
if (types != null && paramNames.length != types.length) {
throw new IllegalArgumentException("Length of paramNames array must match length of types array");
}
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
for (int i = 0; i < values.length; i++) {
applyNamedParameterToQuery(queryObject, paramNames[i], values[i], (types != null ? types[i] : null));
}
return queryObject.list();
}
}, true);
}
public List findByValueBean(final String queryString, final Object valueBean)
throws DataAccessException {
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = session.createQuery(queryString);
prepareQuery(queryObject);
queryObject.setProperties(valueBean);
return queryObject.list();
}
}, true);
}
//-------------------------------------------------------------------------
// Convenience finder methods for named queries
//-------------------------------------------------------------------------
public List findByNamedQuery(final String queryName) throws DataAccessException {
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
return queryObject.list();
}
}, true);
}
public List findByNamedQuery(final String queryName, final Object value) throws DataAccessException {
return findByNamedQuery(queryName, value, null);
}
public List findByNamedQuery(final String queryName, final Object value, final Type type)
throws DataAccessException {
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
if (type != null) {
queryObject.setParameter(0, value, type);
}
else {
queryObject.setParameter(0, value);
}
return queryObject.list();
}
}, true);
}
public List findByNamedQuery(String queryName, Object[] values) throws DataAccessException {
return findByNamedQuery(queryName, values, (Type[]) null);
}
public List findByNamedQuery(final String queryName, final Object[] values, final Type[] types)
throws DataAccessException {
if (types != null && values.length != types.length) {
throw new IllegalArgumentException("Length of values array must match length of types array");
}
return (List) execute(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException {
Query queryObject = getNamedQuery(session, queryName);
for (int i = 0; i < values.length; i++) {
if (types != null) {
queryObject.setParameter(i, values[i], types[i]);
}
else {
queryObject.setParameter(i, values[i]);
}
}
return queryObject.list();
}
}, true);
}
/**
* @deprecated in favor of findByNamedQueryAndNamedParam,
* to avoid parameter overloading ambiguities
* @see #findByNamedQueryAndNamedParam
*/
public List findByNamedQuery(String queryName, String paramName, Object value)
throws DataAccessException {
return findByNamedQueryAndNamedParam(queryName, paramName, value);
}
/**
* @deprecated in favor of findByNamedQueryAndNamedParam,
* to avoid parameter overloading ambiguities
* @see #findByNamedQueryAndNamedParam
*/
public List findByNamedQuery(String queryName, String paramName, Object value, Type type)
throws DataAccessException {
return findByNamedQueryAndNamedParam(queryName, paramName, value, type);
}
/**
* @deprecated in favor of findByNamedQueryAndNamedParam,
* to avoid parameter overloading ambiguities
* @see #findByNamedQueryAndNamedParam
*/
public List findByNamedQuery(String queryName, String[] paramNames, Object[] values)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?