父類: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