Java Spring(规范)-如何创建具有多个关系和集合的标准生成器
我有一个问题,就是如何找到一个解决方案来解决spring规范中的对象列表和@ManyToMany关系。 我有一个员工实体类,其中包含技能列表:Java Spring(规范)-如何创建具有多个关系和集合的标准生成器,java,spring,spring-boot,spring-data-jpa,spring-data,Java,Spring,Spring Boot,Spring Data Jpa,Spring Data,我有一个问题,就是如何找到一个解决方案来解决spring规范中的对象列表和@ManyToMany关系。 我有一个员工实体类,其中包含技能列表: @Entity public class EmployeeEntity { @ManyToMany @JoinTable(name = "employee_skill", joinColumns = {@JoinColumn(name = "employee_id")}, inverseJoinColumn
@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);
};
}
@实体
公共类EmployeeEntity{
@许多
@JoinTable(name=“employee\u skill”,
joinColumns={@JoinColumn(name=“employee_id”)},
inverseJoinColumns={@JoinColumn(name=“skill\u id”)})
私人名单技能;
}
公开课技能{
@列(name=“skill\u name”)
私有字符串skillName;
}
我想找到具有存储在我的自定义技能列表中的技能的员工:
@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);
};
}
public静态规范employeeHasSkills(列出技能){
返回(根、查询、cb)->{
在(skills)中返回root.get(“skills”).get(“skillName”).in;
};
}
技能列表中的技能名称为字符串。所以我尝试为skillName绘制技能图。这不起作用。
有什么想法吗?我正在寻找没有JPA元模型的解决方案。root.get(“skills”)
返回List
。它没有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);
};
}
public静态规范employeeHasSkills(列出技能){
返回(根、查询、cb)->{
加入技能=root.Join(“技能”,JoinType.LEFT);
返回技能。在(技能)中获取(“技能名称”);
};
}