【发布时间】:2011-12-09 14:14:58
【问题描述】:
我正在尝试使用休眠查询语言在 mySQL DB 中查找 varchar 列的最大值。
这是我正在尝试执行的查询,这在本机 SQL 中运行良好:
select max(cast(rs.marks as unsigned)) from Results rs;
其中 column:marks 是一个 varchar。
假设列标记(所有值都保存为文本)具有以下行:
65
75
82
41
那么查询应该返回一个唯一的结果“82”。 但是当我在 HQL 中编写相同的内容时,它不起作用。任何人都可以通过告诉我如何在 Hibernate 中编写这个来帮助我吗?
控制台说:
java.lang.IllegalStateException:节点没有数据类型:org.hibernate.hql.ast.tree.AggregateNode [AGGREGATE] 聚合节点:“最大” [METHOD_CALL] 方法节点:'(' [METHOD_NAME] IdentNode: 'cast' {originalText=cast} [EXPR_LIST] SqlNode: 'exprList' [DOT] DotNode:'results0_.marks_' {propertyName=marks,dereferenceType=4,propertyPath=marks,path={synthetic-alias}.marks,tableAlias=results0_,className=com.Results,classAlias=rs} [IDENT] IdentNode: '{synthetic-alias}' {originalText={synthetic-alias}} [IDENT] IdentNode: '标记' {originalText=marks} [IDENT] IdentNode: '无符号' {originalText=unsigned}【问题讨论】:
标签: sql casting hql max varchar