Java 如何创建多对多关系。生成的实体将具有额外的属性。
我有两个实体:班级(学生)和学生。一个学生可以在很多班级(比如在大学),一个班级有很多学生。问题是如何确保在中间生成的这个实体有2个主键,每个实体(学生和类)的ID。Java 如何创建多对多关系。生成的实体将具有额外的属性。,java,jpa,Java,Jpa,我有两个实体:班级(学生)和学生。一个学生可以在很多班级(比如在大学),一个班级有很多学生。问题是如何确保在中间生成的这个实体有2个主键,每个实体(学生和类)的ID。 我需要知道如何使用注释创建它。我在项目中使用EJB3和JPA注释。首先,您不需要中间实体。您有两个实体,它们之间有一个联接表 只有当您有关于该关系的附加信息时,才需要中间实体-例如,StudentClass可能有times缺席列 如果您确实需要第三个实体,您可以: 定义一个单独的类,其中包含主键的两个部分。该类必须是可嵌入的 用于
我需要知道如何使用注释创建它。我在项目中使用EJB3和JPA注释。首先,您不需要中间实体。您有两个实体,它们之间有一个联接表 只有当您有关于该关系的附加信息时,才需要中间实体-例如,
StudentClass
可能有times缺席
列
如果您确实需要第三个实体,您可以:
@Id
字段的。您还需要另一个类来保存表示键的两个字段请注意,这样您就有了一个复合主键,而不是两个主键(您无法拥有)我知道如何使用hibernate实现这一点。也许会有帮助 设置集合类型
public class CollegeClass {
private Set<Student> students;
}
public class Student {
private Set<CollegeClass> classes;
}
公共类学院类{
私立学校学生;
}
公营班级学生{
私有集合类;
}