2

我想在 Hibernate 中调用一个用户定义的函数。

我如何(或者我什至必须)在 hbm.xml 文件中映射它?

MySQL中的函数头是:

CREATE FUNCTION udfUSDtoPLN(kwota DECIMAL(18,2), kurs DECIMAL(18,2))
RETURNS decimal(18,2)

我在 hmb.xml 中试过:

<sql-query name="udfUSDtoPLN" callable="true">
    <return-scalar column="kwota" type="big_decimal" />
    { ? = call udfUSDtoPLN(?, ?) }
</sql-query>

然后我想在如下代码中使用这个函数:

    String queryString1 = "SELECT p.idPlatnosc, p.kwota, udfUSDtoPLN(1, 2)"
            + " FROM Tplatnosc AS p";
    Query query1 = session.createQuery(queryString1);

它在 query1 行抛出以下异常:

No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode 

当我在 queryString1 中将函数命名为“blah”时也会引发同样的问题,所以我猜它只是在任何地方都找不到它。

4

0 回答 0