父类:JPQL不能正常工作
@Table(name = "users")
class User {
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
List<Gender> genders = new ArrayList<>();
子类:
@Table(name = "gender")
class Gender {
@ManyToOne(cascade = {CascadeType.ALL})
@JoinColumn(name = "userId", nullable = false)
User user;
String sex;
我的目标在MySQL:
SELECT * FROM用户LEFT JOIN性别b。在一.id = b.id WHERE b.sex ='dasd'
退货1 ROW 它的效果很好。我只有一条记录符合这个条件。
但相同的代码在JPQL:
选择一个来自用户的左连接a.genders B其中b.sex = 'DASD'
返回: 一个用户 - 正确和ALL性别,但我不想所有我只想当性=“dasd”,只有一个记录符合这种情况.btw JPQL生成N+1 issue和每个子查询忽略condtion性='dasd'
如何写子查询满足条件?我可以强制子查询仅返回与JPQL查询匹配的性别吗?
您能否提供性别实体代码? –
我也包括Gender.java(子女) – user3871754