Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring(规范)-如何创建具有多个关系和集合的标准生成器_Java_Spring_Spring Boot_Spring Data Jpa_Spring Data - Fatal编程技术网

Java Spring(规范)-如何创建具有多个关系和集合的标准生成器

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

我有一个问题,就是如何找到一个解决方案来解决spring规范中的对象列表和@ManyToMany关系。 我有一个员工实体类,其中包含技能列表:

@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);
返回技能。在(技能)中获取(“技能名称”);
};
}