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