2013-04-16 44 views
0

首先對不起,如果我的問題沒有很好的闡述。休眠標準:使用另一個表從一個表中選擇對象

我有一個映射到對應的表簡單對象:

@Entity 
@Table(name = "USERS") 
public class User{ 

    @Id 
    @Column(name = "USER_ID") 
    @GeneratedValue 
    private long userId; 

    @Column(name = "NAME") 
    private String name; 
     //getters and setters... 

在我的數據庫我也有另一個表。這個表沒有任何關聯的對象,但它具有「USER_ID」列 - 與「USERS」表中的ID相同。

所以問題是,如何使用Hibernate條件從第一個表中選擇與第二個表具有相同USER_ID的所有USER。例如,我有兩個用戶userId = 1和= 2。在「USER_ID」列的第二個表中,我只有值「2」。所以我只需要第一張表userId = 2的用戶。

+1

不可能沒有SQL。 HQL和Criteria查詢只使用映射的實體。 –

回答

0

您的查詢是FOREIGN_KEY關係的經典示例,但是您表示您沒有將Hibernate的映射模型替換爲另一個表。最好在用戶映射文件中使用sql-query 將此查詢結果收集到User對象中。

像這樣 < SQL查詢名稱= 「userwith」 > <返回別名= 「用戶」 類= 「用戶」/ > SELECT user.Name AS {user.name} 來自用戶的 JOIN ANOTHER_TABLE another_table ON user.ID = another_table.USER_ID </sql-query >

相關問題