yijiangyanyu 发表于 2013-1-14 09:01:33

hibernate 调用存储过程返回列表

1、使用存储过程
     (1)建立程序包
 
CREATE   OR   REPLACE   PACKAGE   TESTPACKAGE   ASTYPE   Test_CURSOR   IS   REF   CURSOR;end   TESTPACKAGE;     (2)建立存储过程
CREATE   OR   REPLACE   PROCEDURE   TESTC(p_CURSOR   out   TESTPACKAGE.Test_CURSOR)   ISBEGIN      OPEN   p_CURSOR   FOR   SELECT   *   FROM   testTable;END   TESTC;  
2、使用FUNCTION
CREATE OR REPLACE FUNCTIONseletall    RETURN SYS_REFCURSORAS   test_cur SYS_REFCURSOR;BEGIN    OPEN test_cur for   select * from emp;   return test_cur;END; 
 
3、hibernate配置
    <class name="Emp" table="emp">            <id name="id" column="id">                  <generator class="native"/>            </id>            <property name="name" column="name" type="string" />            <property name="age" column="age" type="integer" />      </class>         <sql-query name="getEmp" callable="true">         <return alias="emp" class="Emp">         <return-property name="id" column="id" />         <return-property name="name" column="name" />         <return-property name="age" column="age" />         </return>         {call proc()}         </sql-query> 
 
4、JAVA代码
 
    Session ss= HibernateSessionFactory.getSession()      List li=ss.getNamedQuery("getEmp").list();      ss.close();
页: [1]
查看完整版本: hibernate 调用存储过程返回列表