分段查询报错,java.lang.NullPointerException 
执行下面方法时报错        public List<CateNews> findCateNewsByHQL(String HQL) {
Session session = null;
  Query query = session.createQuery(HQL);
  query.setFirstResult(0);
  query.setFetchSize(7); 
  List list = query.list();
  return list;
}
分段查询哪里错了
HQL = "FROM CateNews"

解决方案 »

  1.   

    要先创建Session,然后再使用,不然会报空指针, java.lang.NullPointerException 
      

  2.   

    呵呵。。同意楼上这位兄台的是说法,你用session的时候要先看看是否为空,如果为空,创建一个新的session。
      

  3.   

    能不能详解一下
    我对于这个很模糊。
    那么要什么样的session才能做这个事情呢?怎么叫不为空。
      

  4.   

    要先创建一个 SessionFactory 对象,再通过这个对象来获得 Session
      

  5.   

    我对 Hibernate 也不熟悉。你可以去看一下 Hibernate 的参考手册,上面肯定会有的。
      

  6.   

    在这个类里注入sessionFactory
    Session session = null;换成
    Session session = sessionFactory.openSession(); 
    这样session就不是null了,就可以正常使用。
    值为null的变量是不能接“.”这个操作符的
      

  7.   

    谢谢大家,顺便回答另外一个问题,hibernate是有top10的用法的
    select top 7 catenews0_.CATE_NEWS_ID as CATE1_3_, catenews0_.CATE_NEWS_TITLE as CATE2_3_, catenews0_.CATE_NEWS_KWORD as CATE3_3_, catenews0_.CATE_NEWS_ICON_S as CATE4_3_, catenews0_.CATE_NEWS_ICON_L as CATE5_3_, catenews0_.CATE_NEWS_ORIGIN as CATE6_3_, catenews0_.CATE_NEWS_HOT as CATE7_3_, catenews0_.CATE_NEWS_TOP as CATE8_3_, catenews0_.CATE_NEWS_AUDIT as CATE9_3_, catenews0_.CATE_NEWS_URL as CATE10_3_, catenews0_.CATE_NEWS_TIME as CATE11_3_, catenews0_.CATE_NEWS_CONTEXT as CATE12_3_, catenews0_.CATE_NEWS_TYPE_ID as CATE13_3_ from db_cate.dbo.CATE_NEWS catenews0_ order by catenews0_.CATE_NEWS_ID desc
    以上是hibernate从HQL自动生成的SQL
    用法如上