Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate通过中间表将实体与多个单体进行映射_Java_Hibernate - Fatal编程技术网

Java Hibernate通过中间表将实体与多个单体进行映射

Java Hibernate通过中间表将实体与多个单体进行映射,java,hibernate,Java,Hibernate,我在班级之间有这种关系 人物角色 @Entity @Table(name = "estudiante") @PrimaryKeyJoinColumn(name = "est_id", referencedColumnName = "per_id") public class Estudiante extends Persona { @ManyToOne @JoinColumn(name = "est_acudiente") private Acudiente acudi

我在班级之间有这种关系

人物角色

@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;

}
格拉多

这里的问题是,一个学生(Estudiante)可以在不同的学位(Grado)通过时间,所以将有一个中间表来保存一个学生的所有学位,但我只需要知道学生的实际学位,我不知道如何实现这一点与hibernate

希望你能帮助我,为我的英语感到抱歉


您好。

根据您的地图,一名学生只能有一个等级

E学生和Grado是多对一关系 因此,学生可以有多个梯度

所以你的亲戚应该是这样的

Estudiante.java

@OneToMany( mappedBy = "estudianteId")
private List<Grado> lstGrado;
@JoinColumn(name = "estudianteId", referencedColumnName = "ID")
@ManyToOne
private Estudiante estudianteId;
要了解最新的毕业生,你可以做一些事情

  • 如果所有Grado插入都正常,您可以迭代最新的gra_id
  • 在Grado中添加新列,并将最新记录标记为Y,其他记录标记为N

  • 根据你的地图,一个学生只能有一个梯度

    E学生和Grado是多对一关系 因此,学生可以有多个梯度

    所以你的亲戚应该是这样的

    Estudiante.java

    @OneToMany( mappedBy = "estudianteId")
    private List<Grado> lstGrado;
    
    @JoinColumn(name = "estudianteId", referencedColumnName = "ID")
    @ManyToOne
    private Estudiante estudianteId;
    
    要了解最新的毕业生,你可以做一些事情

  • 如果所有Grado插入都正常,您可以迭代最新的gra_id
  • 在Grado中添加新列,并将最新记录标记为Y,其他记录标记为N

  • 如果GRADO包含许多ESTUDIANTE,并且一个ESTUDIANTE链接到许多GRADO,那么您看到的是多对多关系。这样就可以得到链接表


    干杯

    如果GRADO包含许多ESTUDIANTE,并且一个ESTUDIANTE链接到许多GRADO,那么您看到的是一种多对多关系。这样就可以得到链接表


    干杯

    谢谢!我疯了,我加了一个预科班:预科班{private Estudiante Estudiante;private Grado Grado;}谢谢!我简直是疯了,我加了一个预科班:预科班{private Estudiante Estudiante;private Grado Grado;}