Oracle存储过程与hibernate 4没有命名查询

时间:2015-08-21 14:14:25

标签: java oracle hibernate stored-procedures orm

我的Oracle SP只返回一个数字。但是根据official document,Oracle SP必须返回REF CURSOR才能使hibernate工作。所以,我的程序看起来像这样 -

PROCEDURE      get_action_id (
paction_id   OUT SYS_REFCURSOR,
pamount            IN       NUMBER) AS ...

基本上返回单列单行游标。我有以下java代码 -

Session session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createSQLQuery("{ ? = call get_action_id(:pamount) }").setFloat("pamount", 12.3F);
query.uniqueResult();

您可以想象,我的query.uniqueResult()显示java.sql.SQLException: Missing IN or OUT parameter at index:: 2错误。

我没有使用命名查询。我的所有hibernate配置都在java中,而不是在xml中。

有没有兄弟或姐妹指导我正确的方向?我正在使用hibernate 4.3.10和Oracle 10g。

0 个答案:

没有答案