1

hibernate と Spring で 2 つのテーブルを結合するにはどうすればよいですか。以下は私のsuto Javaコードで、名前フィールドがobjectBの名前フィールドと等しいobjectAで結合を行う必要がありますが、ObjectA IDフィールドで検索する予定ですが、返される必要があります。ObjectA ID、ObjectA 名、ObjectA 登録、ObjectB アドレス。

//
// CLASS OBJECT A
//
@Entity
@Table(name = "tableA")
public class ObjectA {

    @Id
    @Column(name = "id")
    private String id; 

    @Column(name = "name")
    private String name; 

    @Column(name = "region")
    private String region; 

}

//
// CLASS OBJECT B
//
@Entity
@Table(name = "tableB")
public class ObjectB {

    @Id
    @Column(name = "id")
    private String id; 

    @Column(name = "name")
    private String name; 

    @Column(name = "address")
    private String address; 

}

Javaコード内でこれを行う方法を教えてください。

4

3 に答える 3

4

これを A クラスに追加します。

@OneToOne
@JoinColumn(name="name")
private ObjectB objectB;

そのため、A を取得すると、対応する B を名前で取得できます。

于 2012-09-28T12:13:53.483 に答える
0

結合を制限するには、where 句に条件を指定してクロス結合を使用します。これは、私が知っている唯一の良い方法 (ネイティブ SQL 以外) であり、2 つのオブジェクト間にマップされた関係がない場合にそれらを結合します。

これは hql クエリで簡単に実行できます

select a.id, a.name, a.region, b. address
from ObjectA a, ObjectB b
where a.id = b.id
于 2012-09-28T12:56:24.383 に答える
0


内部結合select A.ID,A.Name,A.Regin,B.Address from ObjectA as A 内部結合 ObjectB as B を使用することもできます

于 2012-09-28T14:00:44.950 に答える