0

我有两个域对象,如下所示

用户.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;
    } 
}

产品.java

public class Product{

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

在这种情况下,用户到产品具有多对一关系。多个用户可以订阅同一个产品。我想使用 productId 查询 User 表中的用户电子邮件 ID,productId 是 Product 表中的主键和外键通过加入这两个表的用户表..如何通过加入这两个表来使用休眠查询语言或条件来做到这一点?

4

1 回答 1

1

在 hql 中,您不需要像在 sql 中那样使用“on”关键字定义连接列。您已经在映射中定义了连接键,因此 hibernate 将根据它们进行连接。

因此,在您的情况下,从用户 u 中选择 u.emailid,其中 u.product.productid = 您的产品 ID。

For more read on hql and you also should read about named queries

于 2012-09-18T07:35:43.873 回答