我正在嘗試構建一個復雜的查詢,它涉及我在 JDBC 上所做的過濾:
private String buildFilteredQuery(List<Long> extensions, List<Long> categories, Long courseId) {
...
StringBuilder extensionQuery = new StringBuilder();
if (!extensions.isEmpty()) {
extensionQuery.append("AND (");
extensions.forEach(e -> extensionQuery.append("fileExtensionId = ? OR "));
extensionQuery.delete(extensionQuery.length() - 4, extensionQuery.length());
extensionQuery.append(")");
}
...
}
問題是現在在 JPA 上我真的不能這樣做,因為 ? 我應該把要映射的變數(例如:fileExtension)
那么我怎樣才能構建一個帶有動態引數的動態查詢呢?
uj5u.com熱心網友回復:
就像@Guillaume 說的那樣,我最終只使用了一個帶有 IN 子句的句子:
private String buildFilteredQuery(List<Long> extensions, List<Long> categories, Long courseId) {
...
StringBuilder query = new StringBuilder();
if (!extensions.isEmpty()) query.append("AND ( fileExtensionId IN ( :extensionIds ) ) ");
...
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/331669.html
上一篇:帶有Bootstrap和Thymeleaf頁面裝飾的SpringMVC
下一篇:MVC中的正確結構與spring
