2013-08-23 30 views
0

我們有以下兩個表。 項目:ITEM_ID,名即使記錄不存在,Hibernate Critria也會返回行LEFT OUTER JOIN

ItemInfo:ID,ITEM_ID,info_id,item_info

項目表可以在ItemInfo多個條目。

我想同時在兩張表上面加入,我想從項目表中獲取項目 ,項目表中可能沒有任何關聯的ItemInfo條目。 我該如何做到這一點與Hibernate標準?

public class Item { 
    private long item_id; 
    private String name; 

    public long getItem_id() { 
     return item_id; 
    } 

    public void setItem_id(long item_id) { 
     this.item_id = item_id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

public class ItemInfo { 
    private long id; 
    private long item_id; 
    private String item_info; 

    public long getId() { 
     return id; 
    } 

    public void setId(long id) { 
     this.id = id; 
    } 

    public long getItem_id() { 
     return item_id; 
    } 

    public void setItem_id(long item_id) { 
     this.item_id = item_id; 
    } 


    public String getItem_info() { 
     return item_info; 
    } 

    public void setItem_info(String item_info) { 
     this.item_info = item_info; 
    } 
} 
+0

顯示POJO或提供SQL。 – RAS

+0

對不正確的格式。以上是我正在使用的兩個POJO。 – Harshal

+1

你不需要抱歉。只需點擊您問題下方的編輯鏈接,就可以從評論中刪除您的代碼並將其添加到您的帖子中。 – RAS

回答

1

首先讓我糾正你的POJO。

public class ItemInfo { 
    private long id; 
    private Item item_id; 
    private long info_id; 
    private String item_info; 

//getter-setter of all 
} 

查找item_id數據類型的更改。相應地更改註釋/映射文件。

然後嘗試執行以下標準。

Criteria crit = session.createCriteria(Item.class); 
crit.setFetchMode("item_id", FetchMode.JOIN); 
List<Item> itemList = criteria.list(); 
+0

謝謝RAS,我能夠獲取標準的左外連接的記錄,但我也想得到項目的記錄,在相應的Item_Info表中不會有任何條目。 – Harshal

+0

這也可以達到這個目的。你試過了嗎? – RAS

+0

感謝RAS的幫助 – Harshal