程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring Data REST的QueryDSL集成可以用于执行更复杂的查询吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring Data REST的QueryDSL集成可以用于执行更复杂的查询吗??

开发过程中遇到Spring Data REST的QueryDSL集成可以用于执行更复杂的查询吗?的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring Data REST的QueryDSL集成可以用于执行更复杂的查询吗?的解决方法建议,希望对你解决Spring Data REST的QueryDSL集成可以用于执行更复杂的查询吗?有所启发或帮助;

我认为你应该可以使用以下定制功能使它起作用:

bindings.bind(user.dateOfBirth).all((path, value) -> {

  Iterator<? extends LocalDate> it = value.iterator();
  return path.between(it.next(), it.next());
});

此处的关键是使用?dateOfBirth=…&dateOfBirth=(使用属性两次)和….all(…)绑定,该绑定将使你能够访问提供的所有值。

确保将@datetiR_634_11845@eFormat注释添加到的dateOfBirth-property中,User便Spring能够正确地将输入内容Strings转换为LocalDate实例。

目前,lambda得到了a Collection<? extends T>,这使理清各个元素变得更加痛苦,但我认为我们可以在将来的版本中对此进行更改以更合理地暴露a List

解决方法

我目前正在构建一个REST API,我希望客户端可以在其中轻松过滤特定实体的大多数属性。通过将QueryDSL与Spring Data REST结合使用,我可以通过允许客户端通过组合引用属性(例如/users?firstName=Dennis&lastName=Laumen)的查询参数进行过滤,轻松达到我想要的90%。

我什至可以通过实现QuerydslBinderCustomizer接口来自定义查询参数与实体属性之间的映射(例如,不区分大小写的搜索或部分字符串匹配)。一切都很好,但是我也希望客户端能够使用范围过滤某些类型。例如,关于诸如出生日期之类的属性,我想执行以下操作/users?dateOfBirthFrom=1981-1-1&dateOfBirthTo=1981-12-31。基于数字的属性也是如此/users?idFrom=100&idTo=200。我觉得使用QuerydslBinderCustomizer接口应该可以实现这一点,但是这两个库之间的集成并未得到广泛的记录。

最后,使用Spring Data REST和QueryDSL是否可能?如果是这样,怎么办?

大佬总结

以上是大佬教程为你收集整理的Spring Data REST的QueryDSL集成可以用于执行更复杂的查询吗?全部内容,希望文章能够帮你解决Spring Data REST的QueryDSL集成可以用于执行更复杂的查询吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。