0

以下のような2つのドメインオブジェクトがあります

ユーザー.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;
}

このシナリオでは、ユーザーと製品は多対 1 の関係にあります。複数のユーザーが同じ製品をサブスクライブできます。製品テーブルのプライマリ キーであり、これらの2つのテーブルを結合することによるユーザーテーブル..これらの2つのテーブルを結合することにより、休止状態のクエリ言語または基準を使用してそれを行うにはどうすればよいですか?

4

1 に答える 1

1

hql では、"on" キーワードを使用して SQL のように結合列を定義する必要はありません。すでにマッピングで結合キーを定義しているため、休止状態はそれらに基づいて結合を行います。

したがって、あなたの場合、u.product.productid =製品IDであるユーザーuからu.emailidを選択します。

hqlの詳細については、名前付きクエリについてもお読みください。

于 2012-09-18T07:35:43.873 に答える