嘿,我的查询有一个小问题。
我需要找到具有特定能力的用户(如许可证和东西)。
可以说我有能力的用户:
亚历克斯:A、B、C
约翰:A,B
史蒂夫:B,C
要求:
workers?competences=A,B,C - 应该只返回 Alex
目前返回 Alex 3 次,John 和 Steve 两次
workers?competences=A,C - 应该只返回 Alex
目前返回亚历克斯两次,约翰和史蒂夫一次
workers?competences=B,C - 应该返回 Alex 和 Steve
目前返回 Alex 两次,Steve 两次,John 一次
workers?competences=B - 应该返回所有用户
目前返回每个人一次
目前,它会查找所有具有能力 A 或 B 或 C 的用户。
我需要它来返回具有所有插入权限的用户competence A AND competence B AND competence C
。
这是我目前的规范:
public static Specification<WorkDetail> hasCompetences(String searchTerm) {
return (root, query, criteriaBuilder) -> {
List<String> list = new ArrayList<>(Arrays.asList(searchTerm.split(",")));
Join join = root.join("competences");
return join.get("name").in(list);
};
}
慕后森
相关分类