我在oracle中有一個從多個表中返回連接數據的過程。類似於以下過程的東西將連接數據轉換爲從oracle程序返回的Bean
create or replace procedure MyProc(curs OUT sys_refcursor)
as
begin
open curs for
select one.name, one.email, two.address, two.phone_no from table1 one INNER JOIN table2 two
ON one.id=two.id;
end;
/
該過程實際上從第一個表返回8個柱面,在其他表格上處理後從第二個返回5個柱面。
現在我不想將返回的數據映射到我的hibernate映射文件中的類。但是當我調用這個過程時,返回的數據應該被轉換成Beans。說上面的程序我使用以下文件。
Bean.java持有返回的數據
class Bean
{
String name;
String email;
String address;
long phone_no;
.....
//getter and setters
}
Bean.hbm.xml爲休眠
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<sql-query name="temp" callable="true">
{call MyProc(?)}
</sql-query>
</hibernate-mapping>
Call.java從那裏我打電話給我的程序
public class Call
{
@Autowired
SessionFactory sessionFactory;
public List<Bean> get()
{
Session session=sessionFactory.openSession();
Query query=session.getNamedQuery("temp");
List<Bean> list;//The result should be converted to a list of Bean
session.close();
return list;
}
}
從我調用我的過程我想要返回的數據被轉換成一個Bean類的列表。
怎麼可能做到這一點。
我使用休眠3.0和春季3.0
哦這是一個Session接口的方法。請糾正你的評論。 –
好的,我明白了,它來自'SharedSessionContract' .. btw。 'org.hibernate.Session'是一個接口 – Jaiwo99
現在,我可以遵守。 –