Java @OneToMany映射和创建具有相同类型实体的联接表在JPA中失败

Java @OneToMany映射和创建具有相同类型实体的联接表在JPA中失败,java,hibernate,jpa,Java,Hibernate,Jpa,我有一个员工课程。Worker类扩展Employee,而Leader类扩展Worker 每个Leader都有一个列表public list workers responsiblefor=new ArrayList()。我想创建一个联接表,以说明一个领导者是否负责一个或多个工作者 @Entity @Inheritance @DiscriminatorColumn(name="EMP_TYPE") @Table(name="EMPLOYEES") public abstract class Empl

我有一个
员工
课程。
Worker
类扩展
Employee
,而
Leader
类扩展
Worker

每个
Leader
都有一个列表
public list workers responsiblefor=new ArrayList()。我想创建一个联接表,以说明一个
领导者是否负责一个或多个
工作者

@Entity
@Inheritance
@DiscriminatorColumn(name="EMP_TYPE")
@Table(name="EMPLOYEES")
public abstract class Employee implements Printable, Serializable {

    @Id
    @GeneratedValue
    @Column(name = "employee_id", unique = true)
    private int id;

    @Column(name = "position")
    @Enumerated(EnumType.STRING)
    private Position position;

    @Column(name = "name")
    private String name;

    @Column(name = "salary")
    private Double salary;

    @Transient
    public List<Project> projectsWorkingOn = new ArrayList<>();

    public Employee() {
    }
}
领导者

@Entity
public class Worker extends Employee {

    @Id
    @GeneratedValue
    @Column(name = "worker_id", unique = true)
    private int id;

    public Worker() {
    }
}
@Entity
public abstract class Leader extends Worker {

    public Leader() {
    }

    public Leader(Position position, String name, Double salary) {
        super(position, name, salary);
    }

    @OneToMany
    @JoinTable(name="WORKERS_RESPONSIBLE_FOR",
            joinColumns = {@JoinColumn(name="responsible_for")})
    public List<Worker> workersResponsibleFor = new ArrayList<>();
}
@实体
公共抽象类领班{
公共领导人(){
}
公共领导(职位、字符串名称、双薪){
超级(职位、姓名、工资);
}
@独身癖
@JoinTable(name=“工人负责”,
joinColumns={@JoinColumn(name=“responsible_for”)}
public List workersResponsibleFor=new ArrayList();
}

我确信,
Leader
类中的列表注释是错误的,因为每次我尝试使它工作时都会出现很多错误。如何正确地对其进行注释,以将职责收集到新的连接表中?

一个“错误”是在原始基类(定义PK)的子类中添加更多的
@Id
字段。除此之外。。。为什么不发布“很多错误”呢?为什么要使用联接表来处理一对多关系?他对联接表的使用与问题无关。您可以使用联接表或FK;他选择加入这张桌子。两者都应该起作用