我怎样才能加入3个实体JPA?

时间:2014-08-12 03:14:45

标签: java hibernate jpa persistence one-to-one

我有3个实体:Aluno,Turma和Modalidade。现在我需要创建Matricula,这个实体Matricula将包含Aluno,Turma和Modalidade的所有ID以及其他属性。

一个Matricula可以有一个Aluno,可以有很多Turma,可以有很多Modalidade。

实体Matricula,可以: OneToOne Aluno OneToMany Turma OneToMany Modalidade

我希望你能理解。

我该怎么做?

1 个答案:

答案 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;
}

请注意,这是假设您的列名称匹配,并且您的数据库已正确设置。

希望一切顺利

相关问题