Java jpa多个用于一个子类,一个用于第二个子类

Java jpa多个用于一个子类,一个用于第二个子类,java,hibernate,jpa,Java,Hibernate,Jpa,我有以下型号: 一个班级学生和超级班级项目,它有两个子类SmallProject和LargeProject。 只有一个学生可以从事小项目,但许多学生从事大项目。 一个学生可能有很多项目 @Entity @Inheritance(strategy = InheritanceType.JOINED) @Table(name = "PROJECT") public class Project { @Id @Column(name="id") @GeneratedValue(strat

我有以下型号: 一个班级学生和超级班级项目,它有两个子类SmallProject和LargeProject。 只有一个学生可以从事小项目,但许多学生从事大项目。 一个学生可能有很多项目

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "PROJECT")
public class Project {
   @Id
   @Column(name="id")
   @GeneratedValue(strategy = GenerationType.AUTO
   public int getId(){ return id;}

   /**
   Other attributes
   */
}


@Entity
@Table(name = "SMALL_PROJECT")
@PrimaryKeyJoinColumn(name = "ID")
public class SmallProject extends Project {

   @ManyToOne(cascade= CascadeType.ALL)
   @JoinColumn(name = "STUDENT_ID")
   private Student student;

   /**
   Other attributes
   */
}

@Entity
@Table(name = "LARGE_PROJECT")
@PrimaryKeyJoinColumn(name = "ID")
public class LargeProject extends Project {

   @ManyToMany
   @JoinTable(
        name = "STUDENT_LARGE_PROJECTS",
        joinColumns = {@JoinColumn(name="LARGE_PROJECT_ID", referencedColumnName = "ID")},
        inverseJoinColumns = {@JoinColumn(name="STUDENT_ID", referencedColumnName = "ID")}
)
   private List<Student> studentList;

   /**
   Other attributes
   */
}
@实体
@继承(策略=InheritanceType.JOINED)
@表(name=“项目”)
公共类项目{
@身份证
@列(name=“id”)
@GeneratedValue(策略=GenerationType.AUTO
public int getId(){return id;}
/**
其他属性
*/
}
@实体
@表(name=“小型项目”)
@PrimaryKeyJoinColumn(name=“ID”)
公共类SmallProject扩展项目{
@多通(级联=级联类型.ALL)
@JoinColumn(name=“学生ID”)
私立学生;
/**
其他属性
*/
}
@实体
@表(name=“大型项目”)
@PrimaryKeyJoinColumn(name=“ID”)
公共类大型项目扩展项目{
@许多
@可接合(
name=“学生\大型\项目”,
joinColumns={@JoinColumn(name=“LARGE\u PROJECT\u ID”,referencedColumnName=“ID”)},
inverseJoinColumns={@JoinColumn(name=“STUDENT\u ID”,referencedColumnName=“ID”)}
)
私人名单学生名单;
/**
其他属性
*/
}
我的问题是如何定义学生实体中的关系。获取所有项目的列表,而不是SmallProject和LargeProject的列表

@Entity
@Table(name= "STUDENT")
public class Student {

  @??
  private List<Project> projectList;

   /**
   Other attributes
   */


// This works, but i have two lists
@ManyToMany(mappedBy = "studentList")
private List<LargeProject> LargeProject;

@OneToMany(mappedBy = "student")
private List<SmallProject> smallProject;

}
@实体
@表(name=“STUDENT”)
公立班学生{
@??
私人清单项目清单;
/**
其他属性
*/
//这是可行的,但我有两个列表
@许多(mappedBy=“studentList”)
私人上市大型项目;
@OneToMany(mappedBy=“学生”)
私人项目;
}
如果在项目和学生之间定义一个多人的关系,这是可行的。但这意味着一个小项目也可能有多个学生


知道怎么做吗?谢谢

任何人都可以帮忙!!谢谢