详细如下:
Configuration cfg=new Configuration().configure("hibernate.cfg.xml");
SessionFactory sf=cfg.buildSessionFactory();
Session session=sf.openSession();
String hql="select new map(sc.isGood,s.id) from entity.Scenic s left outer join entity.ScenicComment  sc where  s.id=sc.scenic.id";
Query query=session.createQuery(hql);
List list=query.list();
for (int i=0;i<list.size();i++) {
System.out.println(list.get(i).getClass());
}
Exception in thread "main" java.lang.NullPointerException
at org.hibernate.hql.ast.HqlSqlWalker.createFromJoinElement(HqlSqlWalker.java:310)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.joinElement(HqlSqlBaseWalker.java:3275)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3067)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:2945)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:688)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:544)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
at test.main(test.java:20)

解决方案 »

  1.   

    帮帮忙,在线等..很是异常,从没遇到过.用其他查询语句正常,看是不是我的HQL语句有问题
    补充log4j信息如下
    2010-08-31 17:42:52,218 INFO [main] org.hibernate.impl.SessionFactoryImpl.<init> | building session factory
    2010-08-31 17:42:52,703 INFO [main] org.hibernate.impl.SessionFactoryObjectFactory.addInstance | Not binding factory to JNDI, no JNDI name configured
      

  2.   

    是不是 po里面的set定义有误啊po里面的set定义的时候应该避免Set<?> xss = null;这种方式。一般用 Set<?> xss ; 
      

  3.   

    no JNDI name configured
    贴hibernate配置
      

  4.   

    好久都没用Hibernate了, 不过看HQL的前面new map(sc.isGood,s.id), 这里map应该是一个包名.类名的结构吧, 不知道是不是新Hibernate的新语法