Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据:具有规范的复杂查询_Java_Spring_Spring Data Jpa_Specifications - Fatal编程技术网

Java Spring数据:具有规范的复杂查询

Java Spring数据:具有规范的复杂查询,java,spring,spring-data-jpa,specifications,Java,Spring,Spring Data Jpa,Specifications,我使用的方法是使用查询参数附带的规范来生成动态查询。它很好用。但是通过这种方式,我可以使用simple和()或或() 我的问题是,处理复杂查询的最佳实践是什么,比如where((a&b)|(c&d)&(x))和动态输入规范 如果您想生成动态查询(如果您不知道在或/和中有多少个元素),最好的解决方案是创建一些生成器类来生成查询。示例:来自我的github 当您知道将有多少个元素时,我建议您使用规范,如(仅示例): 如果您想生成动态查询(如果您不知道在或/和中有多少个元素),最好的解决方案是创建一些

我使用的方法是使用查询参数附带的规范来生成动态查询。它很好用。但是通过这种方式,我可以使用simple
和()
或()


我的问题是,处理复杂查询的最佳实践是什么,比如
where((a&b)|(c&d)&(x))
和动态输入规范

如果您想生成动态查询(如果您不知道在或/和中有多少个元素),最好的解决方案是创建一些生成器类来生成查询。示例:来自我的github

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


如果您想生成动态查询(如果您不知道在或/和中有多少个元素),最好的解决方案是创建一些生成器类来生成查询。示例:来自我的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")
        )
    );
}