HQL 异常 (org.hibernate.dialect.Dialect$3)

Posted

技术标签:

【中文标题】HQL 异常 (org.hibernate.dialect.Dialect$3)【英文标题】:HQL Exception (org.hibernate.dialect.Dialect$3) 【发布时间】:2012-09-21 07:50:16 【问题描述】:

我正在尝试从 java 执行以下 HQL 查询。

"SELECT ac.accountNumberInt, ag.ext, sum (ext) as exta from CustomerCapital ag, Account ac where customerExt =:customerExt and observationPeriod in (:observationPeriod) group by ac.accountNumberInt, ag.ext";

它正在抛出以下异常。

java.lang.NullPointerException: null 在 org.hibernate.dialect.Dialect$3.getReturnType(Dialect.java:125) ~[hibernate-core.jar!/:3.3.1.GA] 在 org.hibernate.hql.ast.util.SessionFactoryHelper.findFunctionReturnType(SessionFactoryHelper.java:405) ~[hibernate-core.jar!/:3.3.1.GA]

谁能指导我。

【问题讨论】:

您是否尝试过修复查询(删除 from 子句前多余的逗号,使用 ag.ext 而不是 ag.Ext,并在属性前指定实体别名)?如果它仍然不起作用,您是否尝试过更新版本的 Hibernate? 3.3.1 旧了。 comma 和 ag.Ext 在复制时出现错误。 【参考方案1】:

ag.ext 不能在 group by 中,也不能在聚合函数中。 如果需要,请预先说明 sum(ac.ext),如果需要使用 Class 别名指出它

you can't have ambiguous fields :     sum (ext) ==> sum (ac/ag.ext)
                                      observationPeriod  ==> ac/ag.observationPeriod
                                      customerExt ==> ac/ag.customerExt  

【讨论】:

以上是关于HQL 异常 (org.hibernate.dialect.Dialect$3)的主要内容,如果未能解决你的问题,请参考以下文章

hql语句异常

sql到hql抛出异常

HQL 异常 (org.hibernate.dialect.Dialect$3)

我正在尝试编写 HQL 请求,但出现异常。有人可以帮助我吗?

在hive中运行HQL时抛出的异常

HQL 调用封闭函数时没有节点异常的数据类型