我的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。