私は次のエンティティ構造を持っています:
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 つのネイティブ クエリ) を使用する必要がありますか?