HibernateTemplate的常用方法简介:
void delete(Object entity):删除指定持久化实例
deleteAll(Collection entities):删除集合内全部持久化类实例
find(String queryString):根据HQL查询字符串来返回实例集合
findByNamedQuery(String queryName):根据命名查询返回实例集合
get(Class entityClass, Serializable id):根据主键加载特定持久化类的实例
save(Object entity):保存新的实例
saveOrUpdate(Object entity):根据实例状态,选择保存或者更新
update(Object entity):更新实例的状态,要求entity是持久状态
setMaxResults(int maxResults):设置分页的大小
execute是最基础的
public Object execute(HibernateCallback action) throws DataAccessException {
return execute(action, isExposeNativeSession())
}
excuteFind就是execute的结果集判断了一下,HibernateCallback 类型的action必须返回list
public List executeFind(HibernateCallback action) throws DataAccessException {
Object result = execute(action, isExposeNativeSession());
if (result != null && !(result instanceof List)) {
throw new InvalidDataAccessApiUsageException(
"Result object returned from HibernateCallback isn't a List: [" + result + "]");
}
return (List) result;
}
find有很多种重载版本,目的是方便多种方式传入查询参数来进行查询,其内部还是调用execute(action, isExposeNativeSession())
getHibernateTemplate().executeFind()
getHibernateTemplate().execute()
getHibernateTemplate().find()
find 简单Hql 查询。
executeFind 有返回结果, 暴露sesion给你。
execute 没有返回结果 暴露session给你