親クラスを動作しません。JPQLは適切
@Table(name = "users")
class User {
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
List<Gender> genders = new ArrayList<>();
子供クラス:MySQLで
@Table(name = "gender")
class Gender {
@ManyToOne(cascade = {CascadeType.ALL})
@JoinColumn(name = "userId", nullable = false)
User user;
String sex;
私の目標:
SELECT *ユーザーからの左がON性別bを登録しよう.id = b.id WHERE b.sex = 'dasd'
戻り値1 ROW 正常に動作します。この条件を満たすレコードは1つだけです。
が、JPQLで同じコード: - 正しくALL 1つのユーザー:
ユーザーからのLEFTを選択はb.sex = 'DASD'
返しa.genders bを登録しようジェンダーのテーブルジェンダーでは、私はほしいと思うが、私はsex = 'dasd'とこの条件を満たすレコードが1つしかない場合にのみ欲しい。JPQLはN+1 issueを生成し、すべてのサブクエリに対してcondtion sex = 'dasd'を無視してほしい。
書きます条件を満たすサブクエリ? JPQLクエリと一致するジェンダーのみを強制的に返すようにサブクエリを強制できますか?あなたはエンティティではないテーブルから選択JPQLで
ジェンダーエンティティコードを入力できますか? –
Gender.java(子) – user3871754