Я использую Hibernate3, пытаюсь выполнить следующий запрос HQL, он выдает следующие ошибки:
Запрос: select MAX(DATEDIFF(SECOND, startTime, endTime)) from Service_Master
java.lang.IllegalStateException: No data type for node: org.hibernate.hql.ast.tree.AggregateNode
+-[AGGREGATE] AggregateNode: 'MAX'
| \-[METHOD_CALL] MethodNode: '('
| +-[METHOD_NAME] IdentNode: 'DATEDIFF' {originalText=DATEDIFF}
| \-[EXPR_LIST] SqlNode: 'exprList'
| +-[IDENT] IdentNode: 'SECOND' {originalText=SECOND}
Запрос: select AVG(DATEDIFF(SECOND, startTime, endTime)) from Service_Master
java.lang.NullPointerException
at org.hibernate.dialect.function.StandardAnsiSqlAggregationFunctions$AvgFunction.determineJdbcTypeCode(StandardAnsiSqlAggregationFunctions.java:98)
at org.hibernate.dialect.function.StandardAnsiSqlAggregationFunctions$AvgFunction.render(StandardAnsiSqlAggregationFunctions.java:92)
at org.hibernate.hql.ast.SqlGenerator.endFunctionTemplate(SqlGenerator.java:214)
Я перепробовал множество способов решить эту проблему, использовал пользовательский диалект и добавил определение функций к функциям DATEDIFF и MAX, используя SQLFunction в конструкторе, использовал функцию SQL CAST и т. Д., Но все еще не работает ...является срочным требованием, пожалуйста, любой может ответить на это или перенаправить меня по ссылке, где я могу найти решение для этого.