因系统需求,需要调用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);
}
} );
原文中也写了,如何调用存储过程和函数,需要的可以参考。