我想在 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”时也会引发同样的问题,所以我猜它只是在任何地方都找不到它。