2012-09-18 40 views
0

我有兩個領域類下面加入許多具有兩個表在Hibernate查詢語言中有一個realation

User.java

Public class User{ 

    private int userId; 

    private String emailId; 

    private Product product; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "PRODUCT_ID") 
    public Product getProduct() { 
     return this.product; 
    } 
} 

Product.java

public class Product{ 

    @Id 
    @GeneratedValue 
    @Column(name = "PRODUCT_ID", unique = true, nullable = false) 
    private productid; 
} 

在這種情況下用戶產品具有多對一的關係。多個用戶可以訂閱相同的產品。我想要在Product表中用productId查詢用戶電子郵件ID,這是Product表中的主鍵,foriegn鍵是通過加入這兩個表..如何使用hibernate查詢語言或標準加入這兩個表?

回答

1

在hql中,您不需要像使用「on」關鍵字那樣在sql中定義連接列。 您已經在映射中定義了連接鍵,所以hibernate會根據它們進行連接。

所以在你的情況下 從用戶u選擇u.emailid,其中u.product.productid =你的產品ID。

更多閱讀hql,你也應該閱讀有關命名查詢

+0

@ user1495181 .......這不是一個簡單的查詢,沒有加入到其他表?我想我會直接訪問用戶表,與產品表沒有任何關係? – mdp

+0

通過休眠映射隱式完成連接 –

+0

好的,謝謝,這是完美的工作...... – mdp

相關問題