簡體   English   中英

Spring Data:帶有規范的復雜查詢

[英]Spring Data : Complicated queries with Specification

我使用方法使用規范附帶查詢參數來生成動態查詢。 它工作正常。 但是通過這種方式,我可以使用簡單的.and().or()

我的問題是處理復雜查詢的最佳實踐是什么,例如where ((a & b)|(c & d) & (x))帶有動態輸入的規范?

如果要生成動態查詢(如果您不知道將在/或中使用多少元素),那么最佳解決方案是創建一些構建器類以生成查詢。 例如:來自我的github的SpecificationBuilder

當你知道你將擁有多少元素時,我建議你使用規范(僅舉例):

(root, query, builder) -> {
    return builder.and(
        builder.equal(root.get("id"), "1"),
        builder.equal(root.get("name"), "name"),
        builder.or(
            builder.equal(root.get("id"), "2"),
            builder.equal(root.get("name"), "enam")
        )
    );
}   

暫無
暫無

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

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