在 Liferay 中使用动态查询

对于涉及服务层实体的大多数场景,我们可以使用默认服务调用,也可以使用查找器的一些帮助。对于涉及多个实体的简单场景,我们将使用动态查询 API。这是一个包装 API 对于 Hibernate 中使用的 Criteria API,它可以用于我们需要使用 API​​中的几个构造生成动态查询的情况,这种情况本质上并不复杂。首先,一些最常用的构造是:DynamicQueryFactoryUtil-用于构造查询

RestrictionsFactoryUtil-用于提供限制 iefields 以与特定值进行比较,以缩小匹配特定值或范围内的结果等

ProjectionFactoryUtil-用于提供投影以获取将成为搜索结果一部分的字段,即不提供整个实体,将仅提供某些字段或应用聚合函数(例如 min.max,avg)。

PropertyFactoryUtil-用于比较实体类中的某些属性,主要与查询中的其他字段进行比较

这些类的实现存在于 dao.orm.jpa 包中,包含所有可用的方法