0

名前付きクエリで関数を呼び出そうとしていますが、取得しています:

java.lang.IllegalStateException: No data type for node:     org.hibernate.hql.ast.tree.MethodNode 
 \-[METHOD_CALL] MethodNode: '('
    +-[METHOD_NAME] IdentNode: 'MYFUNCTION' {originalText=MYFUNCTION}
    \-[EXPR_LIST] SqlNode: 'exprList'
       \-[NUM_INT] LiteralNode: '1'

私のクエリは次のようなものです

@NamedQuery(name = "myQuery",
            query = " select r, MYFUNCTION(r.id) from ResPO r "
                + " where  r.status like 'A'")

クエリを単純化すると、すべて問題ありません。

@NamedQuery(name = "myQuery",
        query = " select r from ResPO r "
            + " where  r.status like 'A'")

間違いは何ですか?ありがとう++

4

1 に答える 1

1

使用している方言を拡張し、registerFunction()メソッドを呼び出して関数を登録することでそれを行うことができます。

http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/dialect/Dialect.html#registerFunction%28java.lang.String,%20org.hibernate.dialect.function.SQLFunction%29

于 2012-06-01T20:16:09.760 に答える