【发布时间】:2019-06-28 08:03:33
【问题描述】:
我在自定义控制器中使用 Query by Example 为 Spring Data Rest 实现了一个过滤器,如 answer 中所述。
我希望我的所有实体都有这个过滤器。如何使用此过滤器的通用实现来扩展 Spring Data Rest?
【问题讨论】:
-
为什么不直接使用开箱即用的 QueryDsl 支持?
标签: spring-data-rest
我在自定义控制器中使用 Query by Example 为 Spring Data Rest 实现了一个过滤器,如 answer 中所述。
我希望我的所有实体都有这个过滤器。如何使用此过滤器的通用实现来扩展 Spring Data Rest?
【问题讨论】:
标签: spring-data-rest
将@RequestMapping(value = "/{repository}/filter", method = RequestMethod.GET) 添加到控制器。
将@QuerydslPredicate RootResourceInformation resourceInformation 和Map<String,String> map 参数添加到控制器。 resourceInformation 将包含实际实体类型的 typeInfo(Spring Data Rest 通过repository 路径变量找到合适的实体)
如果您有 typeInfo 和所有属性名称值,那么您可以重新创建 example 的正确类型。
--------------- 编辑
我正在开发 Spring Data Rest 的扩展。基本上它是一个访问控制扩展,但它也有一个内置的搜索功能。 (甚至比这个通用过滤器更灵活)但是,仅仅因为搜索功能而切换到这个包会有点矫枉过正。但如果能找到一些其他有用的功能,你应该考虑尝试一下。 ACL-search
【讨论】: