2012-09-18 41 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

相关问题