我在班级之间有这种关系
假面
@Entity
@Table(name = "estudiante")
@PrimaryKeyJoinColumn(name = "est_id", referencedColumnName = "per_id")
public class Estudiante extends Persona {
@ManyToOne
@JoinColumn(name = "est_acudiente")
private Acudiente acudiente;
@ManyToOne
@JoinColumn(name = "est_madre")
private Persona madre;
@ManyToOne
@JoinColumn(name = "est_padre")
private Persona padre;
@ManyToOne
private Grado grado;
}
歌德
@Entity
@Table(name = "grado")
public class Grado {
@Id
@Column(name = "gra_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Short id;
@Column(name = "gra_nombre")
private String nombre;
public Short getId() {
return id;
}
public void setId(Short id) {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
这里的东西是学生(Estudiante)可以在不同程度(Grado)的时间,所以会有一个中间表来保存学生的所有学位,但我只需要知道学生的实际学位我无法通过hibernate获得如何实现这一目标。
希望你能帮助我,对不起我的英语。
很高兴。
答案 0 :(得分:1)
根据您的映射,One Estudiante只能有一个Grado
Estudiante和Grado属于多对一关系 所以Estudiante可以有多个Grado
所以你的关系应该是这样的
<强> Estudiante.java 强>
@OneToMany( mappedBy = "estudianteId")
private List<Grado> lstGrado;
<强> Grado.java 强>
@JoinColumn(name = "estudianteId", referencedColumnName = "ID")
@ManyToOne
private Estudiante estudianteId;
要了解最新的Grado,你可以做一些事情
答案 1 :(得分:1)
如果GRADO包含许多ESTUDIANTE和ESTUDIANTE链接到许多GRADO,那么您正在寻找多对多的关系。这样你就可以获得链接表。
喝彩!