簡體   English   中英

動態(復雜)查詢 JPA/Hibernate 上的動態參數

[英]Dynamic parameters on dynamic (complex) query JPA/Hibernate

我正在嘗試構建一個復雜的查詢,它涉及我在 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

那么我怎樣才能構建一個帶有動態參數的動態查詢呢?

就像@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 ) ) ");
        ...
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM