给你一个例子:存储过程:
CREATE FUNCTION selectEvents RETURN SYS_REFCURSOR
AS
sp_cursor SYS_REFCURSOR;
BEGIN
OPEN st_cursor FOR
SELECT id, event_name, start_date, duration
FROM events;
RETURN sp_cursor;
END;配置文件:
<sql-query name="selectEvents_SP" callable="true">
<return alias="ev" class="Event">
<return-property name="id" column="id"/>
<return-property name="name" column="event_name"/>
<return-property name="startDate" column="start_date"/>
<return-property name="duration" column="duration"/>
</return>
{ ? = call selectEvents() }
</sql-query>调用:
Query query = session.getNamedQuery("selectEvents_SP");
List results = query.list();

解决方案 »

  1.   

    一样调用啊,给它取个名字<sql-update name="update123" callable="true"> 
    然后调用:
            Query query=session.getNamedQuery("update123");
            query.executeUpdate();
      

  2.   

    <sql-update name="update123" callable="true">
    这样我试着写过了的,结果出错了,说不能有name属性的
      

  3.   

    越来越觉得Hibernate奇怪,还有这样的功能
      

  4.   

    Hibernate3才开始支持存储过程的:)