自定义查询DSL绑定 – 大于比较
您可以做的是通过扩展QueryDslPredicateExecutor和QuerydslBinderCustomizer在您的存储库中定义您自己的QueryDSL Binding:
public interface FooRepository
extends CrudRepository
我不是查询DSL专家,但我的理解如下:
a binding defines how a specific field is to be compared to its
database column.
与java 8 lambda相同的绑定:(path,ageValue) – > path.gt(ageValue).您必须从url参数的角度阅读customize方法中的代码:
fetch the Foos for which the age provided as parameter is greater than
the database’s value.
自定义查询DSL绑定 – 比较之间
另一种选择是为参数提供下限和上限,如下所示:?age = 10& age = 30.然后,定义以下绑定:
default void customize(final QuerydslBindings bindings,final QFoo foo) {
bindings.bind(foo.age).all((path,ageValue) -> {
Iterator extends Long> it = value.iterator();
return path.between(it.next(),it.next());
});
}