Java 从Hibernate调用Oracle存储函数

Java 从Hibernate调用Oracle存储函数,java,oracle,hibernate,Java,Oracle,Hibernate,我有一个Oracle可编辑函数(我无法更改),需要从Hibernate调用它 CREATE OR REPLACE EDITIONABLE FUNCTION "SCHEMA"."FUNCTION_NAME" ( var1 IN CHAR DEFAULT NULL , var2 IN CHAR DEFAULT NULL , var3 OUT CHAR ) RETURN NUMBER AS ... END; 不幸的是,我不知道怎么做。我在这里看到了一些关于Session.doWork

我有一个Oracle可编辑函数(我无法更改),需要从Hibernate调用它

CREATE OR REPLACE EDITIONABLE FUNCTION
"SCHEMA"."FUNCTION_NAME"
(
  var1 IN CHAR DEFAULT NULL ,
  var2 IN CHAR DEFAULT NULL ,
  var3 OUT CHAR
)
RETURN NUMBER
AS
  ...
END;

不幸的是,我不知道怎么做。我在这里看到了一些关于Session.doWork()的帖子,但我不知道如何在这里实现它。

只要函数不改变数据,就可以使用双表从查询中调用它

select schema.function_name(:bind1,:bind2,:bind3) from dual;

您可以尝试以下方法:

Query query = session.createSQLQuery(
    "CALL myfunc(:param1)")
    .setParameter("param1", "xyz");