让我直截了当.
我在一个项目中使用Spring Data JPA和queryDSL,我自己也无法弄清楚这一点.
我在静态方法中有queryDSL谓词可以接受参数,如果参数不正确,它应该返回“空谓词”:
public static BooleanExpression byWhateverID(Long whateverID) { if(whateverID == null) return [insert magic here]; // if parameter is OK return usual predicate return QClass.property.whateverID.eq(whateverID);}
现在我希望能够使用AND / OR *** 作符链接这些谓词:
someRepository.findAll(byWhateverID(someParam).and(bySomethingElseID(1));
这里的问题是,此时我不知道’someParam’是否为空(当然我可以查看,但那是很多IF).
我也知道我可以使用BooleanBuilder类,但这看起来也像很多不需要的代码.
有谁知道可以插入什么而不是“[在这里插入魔法]”???
或者也许我在某处丢失某些东西……
谢谢!
@H_404_29@最佳答案您可以在byWhateverID和bySomethingElseID中为非匹配谓词返回null,并通过ExpressionUtils.allOf()组合谓词在你的情况下
Predicate where = ExpressionUtils.allOf(byWhateverID(someParam),bySomethingElseID(1));someRepository.findAll(where);
总结 以上是内存溢出为你收集整理的Spring Data QueryDSL空谓词谓词链接全部内容,希望文章能够帮你解决Spring Data QueryDSL空谓词谓词链接所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)