如何在hibernate中执行Oracle存储过程并从ref cursor获取结果集

时间:2013-10-08 18:29:13

标签: java oracle hibernate java-ee stored-procedures

我有一个oracle Store程序,其中两个参数varchar2类型为
一个 ref_cursor 输出参数和一个数字输出参数如何调用 使用hibernate 而不从Session对象获取JDBC连接的过程。

2 个答案:

答案 0 :(得分:0)

参考此链接 http://www.srikanthtechnologies.com/blog/java/callspfromhb.aspx
可能会解决您的问题。

答案 1 :(得分:0)

Hibernate是一个对象关系映射工具,旨在充当OO和Relational范例之间的桥梁。它不仅仅是JDBC的便利包装器。因此,它不适用于存储过程。

如果你真的必须使用本机查询,你可以这样做。

示例:

Query query = session.createSQLQuery(
  "CALL GetStocks(:stockCode)")
  .addEntity(Stock.class)
  .setParameter("stockCode", "7277");

借鉴http://www.mkyong.com/hibernate/how-to-call-store-procedure-in-hibernate/

我建议改为使用MyBatis - 它被设计为围绕JDBC的便利包装器,并将SQL结果集映射到域对象。

http://mybatis.github.io/mybatis-3/