我有3个实体:Aluno,Turma和Modalidade。现在我需要创建Matricula,这个实体Matricula将包含Aluno,Turma和Modalidade的所有ID以及其他属性。
一个Matricula可以有一个Aluno,可以有很多Turma,可以有很多Modalidade。
实体Matricula,可以: OneToOne Aluno OneToMany Turma OneToMany Modalidade
我希望你能理解。
我该怎么做?
答案 0 :(得分:1)
我有一个教程,详细介绍了如何使用Hibernate注释设置各种关系。你可以找到它here。
我将假设你想要使用外键映射的双向关系(如教程所示,如果这是错误的,你可以在那里找到单向配置),你基本上可以像这样声明你的类:
@Entity
@Table
public class Matricula {
@Id
private long matriculaId;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "alunoId")
private Aluno aluno;
@OneToMany(mappedBy="turma")
private List<Turma> turmas;
@OneToMany(mappedBy="modalidade")
private List<Modalidade> modalidades;
}
@Entity
@Table
public class Turma {
//Put a unique ID here to be used as PK
@ManyToOne
@JoinColumn(name="matriculaId)
private Matricula matricula;
}
@Entity
@Table
public class Modalidade {
//Put a unique ID here to be used as PK
@ManyToOne
@JoinColumn(name="matriculaId)
private Matricula matricula;
}
@Entity
@Table
public class Aluno {
//Put a unique ID here to be used as PK
@OneToOne(mappedBy="aluno")
private Matricula matricula;
}
请注意,这是假设您的列名称匹配,并且您的数据库已正确设置。
希望一切顺利