如何在实体的Hibernate上创建关系 EscalaDetalhes和DefinicaoEscala,因为在DefiniciaoEscala实体上,有一个由idDetalhe(与(EscalaDetalhes排在外)和idTurma(与(Turma)排在外))组成的复合主键。
我已经完成了如下课程:
@Embeddable
public class DefinicaoEscalaPK implements Serializable {
@Column(name="myColumn")
private Integer idTurma;
@Column(name="myColumn2")
private Integer idEscalaDia;
//GETTERS , SETTERS , HASH AND EQUALS
}
@Entity
public class DefinicaoEscala implements Serializable {
@EmbeddedId
private DefinicaoEscalaPK id;
@ManyToOne()
@JoinColumn(name = "idTurno")
private TurnoBean turno;
//GETTERS , SETTERS , HASH AND EQUALS
}
@Entity
@Table(name ="table")
public class EscalaDetalhes{
@id
private Integer idDetalhe;
@ManyToOne()
@JoinColumn(name="mybdColumn")
private EscalaBean escala;
@Column(name="myColumn")
private Calendar dia;
//MY QUESTION IS HERE , HOW WOULD I DESCRIBE THE RELATION HERE?
private List<DefinicaoEscala> escalaDiaDetalhes;
//GETTERS , SETTERS , HASH AND EQUALS
}
我的问题在这里,如何描述这种关系?
private List<DefinicaoEscala> escalaDiaDetalhes;
答案 0 :(得分:1)
referencedColumnName
基本上是用来传达要映射的另一个实体的哪一列可以用于当前实体中的映射,因此,您可以在提及关系时使用属性referencedColumnName
:
@Entity
@Table(name ="table")
public class EscalaDetalhes{
@id
private Integer idDetalhe;
@ManyToOne()
@JoinColumn(name="mybdColumn")
private EscalaBean escala;
@Column(name="myColumn")
private Calendar dia;
//MY QUESTION IS HERE , HOW WOULD I DESCRIBE THE RELATION HERE?
@OneToMany
@JoinColumn(name="idDetalhe",referencedColumnName="idEscalaDia")
private List<DefinicaoEscala> escalaDiaDetalhes;
//GETTERS , SETTERS , HASH AND EQUALS
}
P.S:这完全基于您共享的代码。