Exception in thread "main" java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.AggregateNode
/-[AGGREGATE] AggregateNode: 'max'
String sql="select max(t_fun.id.funId) from TResourceFun as t_fun";
Object obj=session.createQuery(sql).uniqueResult();
这里的查询是返回表中的最大的id值,其中的TResourceFun是与数据库中的T_RESOURCE_FUN表关联的BEAN类,t_fun.id是类TResourceFun中的属性TResourceFunId类型的成员变量,t_fun.id.funId是类TResourceFunId中的属性BigDecimal类型的变量。
public class TResourceFunId implements java.io.Serializable {
private BigDecimal funId;
private BigDecimal resId; .........
}
public class TResourceFun implements java.io.Serializable {
private TResourceFunId id;
private String description;
private String funName;
private String funUrl;
private String module;
}
<class name="com.bittt.helper.TResourceFun" table="T_RESOURCE_FUN" schema="DOCMAN">
<composite-id name="id" class="com.bittt.helper.TResourceFunId">
<key-property name="funId" type="big_decimal">
<column name="FUN_ID" precision="22" scale="0" />
</key-property>
<key-property name="resId" type="big_decimal">
<column name="RES_ID" precision="22" scale="0" />
</key-property>
</composite-id>