2014-08-29 61 views
0
我使用冬眠4和彈簧3

休眠:獲得多個表列從多個表

我有5個表

結果和每個表是用1個實體class.Now映射如果我必須從1個表中選擇列比我會做下面:

String hql = "from Employee E"; 
Query query = session.createQuery(hql); 
List results = query.list(); 

這個結果中的值將是EmployeeEntity類型。

或者我也可以使用Criteria。

現在我的要求是,我必須從每張表的所有5個表中取得結果。

早些時候,它是一個1表,所以我得到一個實體,現在我從5個表獲得結果,所以如何在實體中映射它。

List results1 = query.list(); //考慮使用不同的表格在結果中選擇並獲取6列。

現在如何迭代這個結果1。

我希望你有我的問題。

回答

0

可以使用Result Set TransformerQuery的:

說你有喜歡從tab1coltab2coltab3coltab4col不同的表4列。

創建 'POJO' 如下

class MyClass 
{ 
private Integer tablcol; 
private Integer tab2col; 
private Integer tab3col; 
private Integer tab4col; 
    // getter and setters 
} 

下面的方式,你可以改變你的結果集:

List<MyClass> myClassList=query.setResultTransformer(Transformers.aliasToBean(MyClass.class)).list(); 

Note:查詢應該包含一個結果集(在Oracle類似遊標)。

+0

謝謝。意思是在這裏我們將得到MyClass類型的列表,但是查詢列將如何設置爲特定的字段。像第一列選擇將映射到哪個MyClass變量。如何確定? – VJS 2014-08-29 09:36:10

+0

只要保持類的字段名稱與列名相同,hibernate就會處理休息。 – 2014-08-29 09:37:47

+0

感謝您的及時回覆。 – VJS 2014-08-29 09:55:55