我有一个问题,那就是找到一个具有对象列表和@ManyToMany关系的spring规范的解决方案。我有employee实体类,它有技能列表:
@Entity
public class EmployeeEntity {
@ManyToMany
@JoinTable(name = "employee_skill",
joinColumns = {@JoinColumn(name = "employee_id")},
inverseJoinColumns = {@JoinColumn(name = "skill_id")})
private List<SkillEntity> skills;
}
public class SkillEntity {
@Column(name = "skill_name")
private String skillName;
}我要查找具有存储在我的自定义技能列表中的技能的员工:
public static Specification<EmployeeEntity> employeeHasSkills(List<String> skills) {
return (root, query, cb) ->{
return root.get("skills").get("skillName").in(skills);
};
}技能列表的字符串形式为skillNames。所以我试着为skillName绘制技能图。Ofc这不起作用。有什么想法吗?我正在寻找没有JPA元模型的解决方案。
发布于 2020-03-02 22:52:11
root.get("skills")返回List<Skill>。它没有skillName。
你应该试试这样的东西
public static Specification<EmployeeEntity> employeeHasSkills(List<String> skills) {
return (root, query, cb) ->{
Join<EmployeeEntity, SkillEntity> skill = root.join("skills", JoinType.LEFT);
return skill.get("skillName").in(skills);
};
}https://stackoverflow.com/questions/60478452
复制相似问题