如何在Hibernate中映射用户定义的函数?

时间:2013-08-15 20:36:35

标签: hibernate user-defined-functions

我想在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”时抛出相同的内容,所以我猜它只是找不到它在哪里找到它。

0 个答案:

没有答案