我有以下實體(減少並更名爲這個例子)JPA查詢物存在
@Entity
public class Case {
@Id
private Long id;
@ManyToOne(optional=false)
private CourtConfiguration courtConfiguration;
@ElementCollection(fetch=FetchType.EAGER)
private List<String> caseNumbers;
}
第二實體
@Entity
public class CourtConfiguration {
@Id
private Long id;
String countyId;
String referenceId;
....
}
我試圖用JPQL搜索所有案件有一定的法院配置縣編號,並有caseNumbers包含所有提供的一組重要caseNumbers。
所以我的查詢需要縣ID和一組caseNumbers作爲參數。分別稱爲countyId和importantCaseNumbers。
我已經嘗試過,並沒有得到它的工作。
我的查詢看起來像這樣
String query = "SELECT case FROM Case case JOIN case.caseNumbers caseNumbers WHERE ";
query += "case.caseConfiguration.countyId = :countyId ";
以上位工作,直到我加我caseNumber條件。 我已經嘗試了一個重要的數字foreach重要的數字來延長查詢,一旦重要數字列表超過一個它不起作用。沒有值返回。
for (String importantCaseNum : importantCaseNumbers) {
query += " AND '"+importantCaseNum+"' in (caseNumbers)";
}
任何建議/指針讚賞。我想我正在尋找的是case.caseNumbers包含(importantNumbers)子句。
更新我已經恢復到本機SQL爲我的查詢,因爲我不想通過使用HQL綁定自己進入休眠狀態。感謝@soulcheck和@mikko幫助我。我會在休眠JPA修復程序可用時發佈。
感謝 保羅
你是什麼意思「它不工作」。例外?沒有值返回? – soulcheck
沒有值返回 –
你可以發佈你使用foreach的代碼嗎? – soulcheck