当前位置: 代码迷 >> Java Web开发 >> hibernate spring的这两种查询有何差异
  详细解决方案

hibernate spring的这两种查询有何差异

热度:33   发布时间:2016-04-16 22:06:44.0
hibernate spring的这两种查询有何区别?
getHibernateTemplate().find(hql);
还有一个是用query:
Query query = sessionFactory.getCurrentSession().createQuery(hql);

这两种增删改查的方法有何区别?

------解决方案--------------------
Hibernate中的find是根据主键首先去缓存中查找,找到就直接返回,找不到就接着去数据库中查找;

而createQuery直接就去数据库中查找,不管缓存中是不是已经存在了;
------解决方案--------------------
//queryString  HQL语句     pageSize每页显示多少条      page当前所在也
public List<Object> queryListObjectAllForPage(String queryString,int pageSize,int page){
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
Query   query   =   session.createQuery(queryString); 
query.setFirstResult((page-1)*pageSize); 
query.setMaxResults(pageSize); 
List<Object> list= (List<Object>)query.list();
session.close();
return list;
}
  相关解决方案