[英]How can I manage to create a many-to-many relationship. The generated entity will have extra attributes.
我有2个实体:“班级”(学生)和“学生”。 一个学生可以参加许多班级(例如在大学里),而一个班级有很多学生。 问题是如何确保在中间生成的该实体具有2个主键,即每个其他实体(学生和班级)的ID。 我需要知道如何使用注释创建它。 我在项目中使用EJB3和JPA批注。
首先,您不需要中间实体。 您有两个实体以及它们之间的联接表。
仅当您具有有关该关系的其他信息时,才需要一个中间实体-例如, StudentClass
可能具有timesAbsent
列。
如果您确实需要第三个实体,则可以拥有:
@EmbeddedId
,您在其中定义一个单独的类,其中包含主键的两个部分。 该类必须是@Embeddable
@IdClass
,它将允许您指定两个@Id
字段。 您将再次需要另一个类来保存代表密钥的两个字段。 请参阅此问题以选择哪个选项。
请注意,因此,您有一个复合主键,而不是两个主键(您没有)
我知道如何使用休眠方式实现这一目标。 可能会有所帮助。
将集合类型设为Set。
public class CollegeClass {
private Set<Student> students;
}
public class Student {
private Set<CollegeClass> classes;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.