gpt4 book ai didi

java - Spring 数据 : Complicated queries with Specification

转载 作者:太空宇宙 更新时间:2023-11-04 11:43:07 24 4
gpt4 key购买 nike

我使用this使用规范附带查询参数来生成动态查询的方法。它工作得很好。但通过这种方式,我可以使用简单的 .and().or()

我的问题是处理像 where ((a & b)|(c & d) & (x)) 这样具有动态输入规范的复杂查询的最佳实践是什么?

最佳答案

如果您想生成动态查询(如果您不知道 or/and 中将有多少元素),最好的解决方案是创建一些用于生成查询的构建器类。例如:SpecificationBuilder来 self 的github。

当您知道您将拥有多少个元素时,我建议您使用规范,例如(仅示例):

(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")
)
);
}

关于java - Spring 数据 : Complicated queries with Specification,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42607857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com