0

私は次のエンティティ構造を持っています:

class A {
    @OneToMany(mappedBy = "aInstance",
               fetch = FetchType.LAZY,
               cascade = CascadeType.ALL,
               orphanRemoval=true)
    Set<B> bInstances;

    //Other fields and methods
}


class B {
    @ManyToOne
    @JoinColumn(name="a_id")
    private A aInstance;

    @Column(name="b_name")
    private String name;
    //Other fields and methods
}

現在、DB テーブルでは、通常、エンティティ A に対応する 1 つの行に数百の B が含まれる場合があります。

しかし、名前に基づいて、特定の A インスタンスに対してそのような B インスタンスを 1 つだけフェッチすることに興味があります。たとえば、「XYZ」という名前の B のみで A を取得したいとします。

単一のクエリでそれを行うにはどうすればよいですか? または、2 つのクエリ (または 1 つのネイティブ クエリ) を使用する必要がありますか?

4

1 に答える 1

0
select b from B b where b.name = 'XYZ' and b.aInstance = :a
于 2013-06-10T07:08:59.990 に答える