Я пытаюсь найти максимальное значение столбца varchar в БД mySQL, используя язык запросов hibernate.
Это запрос, который я пытаюсь выполнить, и он отлично работает в нативном SQL:
select max(cast(rs.marks as unsigned)) from Results rs;
где столбец: метки - это varchar .
Предположим, если метки столбцов (где все значения сохранены в виде текстов) имеют следующие строки:
65
75
82
41
Тогда запрос должен вернуть мне уникальный результат «82».
Но когда я написал то же самое на HQL, это не сработало. Может кто-нибудь помочь мне, рассказав, как написать это в Hibernate?
Консоль говорит:
java.lang.IllegalStateException: No data type for node:org.hibernate.hql.ast.tree.AggregateNode
[AGGREGATE] AggregateNode: 'max'
[METHOD_CALL] MethodNode: '('
[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: 'marks' {originalText=marks}
[IDENT] IdentNode: 'unsigned' {originalText=unsigned}