过滤实体
来源:Jhipster |
时间:2018-11-08
|
|

 过滤您的实体

介绍

在为实体实现基本CRUD功能之后,有一个非常常见的请求是为实体的属性创建各种过滤器,因此可以更有效地使用服务器。这些过滤器应作为请求参数发送,因此任何客户端 - 以及任何浏览器 - 都可以轻松使用它。此外,这些过滤器应遵循一个理智,简洁的模式,并且必须允许它们自由组合。

如何激活

使用jhipster entity命令生成实体时,请选择服务或服务实现以对此实体启用过滤。

如果您想要启用过滤功能对现有的实体,您可以修改实体配置在您的项目.jhipster目录,通过设置serviceserviceClassserviceImplno,并jpaMetamodelFilteringtrue,然后用重新生成jhipster entity <entity name>

使用JDL时,filter <entity name>在JDL文件中添加一行并使用jhipster import-jdl命令重新导入定义

公共界面

对于每个实体,您可以在实体生成器中启用过滤,之后,您可以/api/my-entity使用以下参数调用GET端点:

  • 对于每个xyz字段

    • 列出所有实体,其中xyz为null,未指定。

    • 列出指定xyz不为null的所有实体。

    • 列出所有实体,其中xyz等于'someValue'或'otherValue'

    • 列出所有实体,其中xyz等于'someValue'

    • xyz.equals = someValue中

    • xyz.equals = someValue中,otherValue

    • xyz.specified =真

    • xyz.specified = FALSE

  • 如果xyz的类型是字符串:

    • 列出所有实体,其中xyz包含'something'。

    • xyz.contains =东西

  • 如果xyz是任何数字类型或日期类型。

    • 列出所有实体,其中xyz小于或等于'someValue'。

    • 列出所有实体,其中xyz大于或等于'someValue'。

    • 列出所有实体,其中xyz小于'someValue'。

    • 列出所有实体,其中xyz大于'someValue'。

    • xyz.greaterThan = someValue中

    • xyz.lessThan = someValue中

    • xyz.greaterOrEqualThan = someValue中

    • xyz.lessOrEqualThan = someValue中

当然,它们可以自由组合。

体验此过滤器API的表现力的一种好方法是在JHipster应用程序的API文档页面中使用swagger-ui。

履行

启用此功能后,将生成名为as EntityQueryService和an 的新服务EntityCriteriaSpring会将请求参数转换为EntityCriteria的字段

EntityQueryService,我们将criteria对象转换为静态,并键入safe,JPA查询对象。为此,它需要的是静态的元模型生成能在构建。有关详细信息,请参阅JPA Static Metamodel Generator文档

为了证明生成的标准是有效的,Spring配置得很好,EntityResourceIntTest扩展了大量的测试用例,每个过滤器都有一个。

限制

目前仅支持SQL数据库(带JPA),具有单独的服务或单独的服务实现/接口组合。


提交
查看更多评论
没有更多评论