hibernate 调用存储过程返回列表
1、使用存储过程
???? (1)建立程序包
?
CREATE OR REPLACE PACKAGE TESTPACKAGE AS TYPE Test_CURSOR IS REF CURSOR;end TESTPACKAGE;
??? (2)建立存储过程
CREATE OR REPLACE PROCEDURE TESTC(p_CURSOR out TESTPACKAGE.Test_CURSOR) IS BEGIN OPEN p_CURSOR FOR SELECT * FROM testTable;END TESTC;
?
2、使用FUNCTION
CREATE OR REPLACE FUNCTION seletall 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 column="name" type="string" /> <property name="age" column="age" type="integer" /> </class> <sql-query name="getEmp" callable="true"> <return alias="emp" 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(); ?