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