我正在开发一个使用JHipster生成的Spring和Java项目。我想要过滤与另一个表没有直接关系的表。
我的目的几乎在之前类似的问题中被问到
编写具有多个内连接的Spring规范&其他条件
但是在我的例子中,我有两个不相关的实体:
(id: Long, FullName: string, profileRank: Enum of string)
(id: Long, level: Enum of string, rate: Double)
Consultant | Rank
|
id | FullName | profileRank | id | level | rate
1 | aaaaa | 'ONE' | 1 | 'ONE' | 1
2 | bbbbbb | 'THREE' | 2 | 'TWO' | 2
3 | cccccc | 'FOUR' | 3 | 'THREE' | 3
4 | dddddd | 'THREE' | 4 | 'FOUR' | 4
我想过滤consultantlist byrate使用
示例:获取rate大于3的顾问
Expected result
id | FullName | profileRank
3 | cccccc | 'FOUR'
我已经搜索了文档和许多文章没有得到它的工作,请如何实现这一目标。
您不需要为您的案例编写规范。
- 获取所有等级和比率的排名
- 过滤这些值,只保留大于3的值(步骤1和步骤2可以合并)。结果将是只包含
FOUR
rank 的 list.stream(rank => rank.level).collect(toList())
- 步骤3的结果将被传递到一个存储库方法,如
List<Consultant> findByProfileRankIn(List<String> levelNames)
List<Rank>
。另一种选择是像这样连接使用JPA标准连接没有关系的表
如果你仍然想要一个规范也是可能的。Spring Data Join with Specifications