因系统需求,需要调用oracle数据库中的存储函数,在网上找了许多篇文章都没有满足我的条件, 返回值和OUT值同时能获取到,JPA的API中貌似没有,反正我是没找到,后来同事找的一个网页 上找到了解决方法,就是通过JPA来调用JDBC的API来实现这个功能,下面就是代码:
Session
session = entityManager.unwrap( Session.class);
Integer
commentCount = session.doReturningWork(
connection
-> {
try(CallableStatement
function = connection
.prepareCall(
"{
? = call fn_count_comments(?) }"
)) {
function.registerOutParameter(1,
Types.INTEGER );
function.setInt(2,1);
function.execute();
returnfunction.getInt(1);
}
}
);
原文中也写了,如何调用存储过程和函数,需要的可以参考。