hibernate查询报空异常

鱼粉儿 2011-06-23 09:36:21
Exception in thread "main" java.lang.NullPointerException
at org.hibernate.dialect.Dialect$3.getReturnType(Dialect.java:102)
at org.hibernate.hql.ast.util.SessionFactoryHelper.findFunctionReturnType(SessionFactoryHelper.java:382)
at org.hibernate.hql.ast.tree.AggregateNode.getDataType(AggregateNode.java:21)
at org.hibernate.hql.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:143)
at org.hibernate.hql.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:705)
at org.hibernate.hql.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:529)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:645)
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 com.chainway.dao.BaseHibernateDAO.findByHql(BaseHibernateDAO.java:71)
at com.chainway.imp.text.main(text.java:17)
...全文
263 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
鱼粉儿 2011-06-23
  • 打赏
  • 举报
回复
谢谢,这个我设这了呀
romanitc 2011-06-23
  • 打赏
  • 举报
回复
当前要设置的,不同的数据库设置不同。例如:mysql就设置为MySQLDialect!参考一下我的代码:

<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
</props>
</property>


prop key="hibernate.show_sql">false</prop>是否显示sql语句,对于测试有帮助!
鱼粉儿 2011-06-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 liu4306518 的回复:]
是不是数据库的Dialect设置的不对?
[/Quote]
这个需要设置什么?
鱼粉儿 2011-06-23
  • 打赏
  • 举报
回复
回复于:2011-06-23 09:45:21
是不是该把b.id.yxlc为空的过滤掉?

现在数据库里没有b.id.yxlc为空的数据
鱼粉儿 2011-06-23
  • 打赏
  • 举报
回复
报空的位置是Query queryObject = getSession().createQuery(hql);这一句
liu4306518 2011-06-23
  • 打赏
  • 举报
回复
是不是该把b.id.yxlc为空的过滤掉?
鱼粉儿 2011-06-23
  • 打赏
  • 举报
回复
经过检查是decimal(b.id.yxlc,10,2)的问题,可是应该怎么改呢?
毛豆先生Max 2011-06-23
  • 打赏
  • 举报
回复
你给出的这些是看不出什么问题的。
首先确定报空的位置,再解决问题。
确定报空位置的办法就是打断点调试或者向控制台输入东西来判断
liu4306518 2011-06-23
  • 打赏
  • 举报
回复
是不是数据库的Dialect设置的不对?
鱼粉儿 2011-06-23
  • 打赏
  • 举报
回复
hql语句是这样的:select a.id.xm,a.id.xb,a.id.zjh,a.id.qs,a.id.pxcxhlb,a.id.xybh as xybh,sum(case b.id.pxkm when '1' then b.id.yxsc else 0 end) as km1yxsc,sum(case b.id.pxkm when '1' then b.id.pxsc else 0 end) as km1pxsc,sum(case b.id.pxkm when '1' then decimal(b.id.yxlc,10,2) else 0 end) as km1yxlc,sum(case b.id.pxkm when '2' then b.id.yxsc else 0 end) as km2yxsc,sum(case b.id.pxkm when '2' then b.id.pxsc else 0 end) as km2pxsc,sum(case b.id.pxkm when '2' then decimal(b.id.yxlc,10,2) else 0 end) as km2yxlc,sum(case b.id.pxkm when '3' then b.id.yxsc else 0 end) as km3yxsc,sum(case b.id.pxkm when '3' then b.id.pxsc else 0 end) as km3pxsc,sum(case b.id.pxkm when '3' then decimal(b.id.yxlc,10,2) else 0 end) as km3yxlc from TXysqxxb a,TPxjlzsb520400 b where a.id.xybh=b.id.xybh AND a.id.pxjgmc = '230900001' group by a.id.xybh,a.id.xm,a.id.xb,a.id.zjh,a.id.qs,a.id.pxcxhlb order by (a.id.xm) asc with ur
Rinoajun 2011-06-23
  • 打赏
  • 举报
回复
BaseHibernateDAO.java:71看下呗
鱼粉儿 2011-06-23
  • 打赏
  • 举报
回复
有知道的,帮帮忙啊,急!急!急!

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧