gpt4 book ai didi

java - Spring(规范)-如何创建具有多对多关系和集合的条件生成器

转载 作者:行者123 更新时间:2023-12-02 08:56:09 25 4
gpt4 key购买 nike

我在寻找带有对象列表和@ManyToMany关系的Spring规范的解决方案时遇到问题。我有员工实体类,其中包含技能列表:

@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);
};
}

技能列表的技能名称为字符串。所以我尝试将技能映射为 SkillName。 Ofc 这不起作用。任何想法?我正在寻找没有 JPA 元模型的解决方案。

最佳答案

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);
};
}

关于java - Spring(规范)-如何创建具有多对多关系和集合的条件生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60478452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com