2017-05-17 8 views
0

私はHibernateマッピングエンティティは

@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)があるので、生徒のすべての学位を保存するための中間テーブルがありますが、生徒の実際の学位を知る必要があります。休止状態でこれを達成する方法。

あなたは私を助け、私の英語を残念に思うかもしれません。

よろしくお願いいたします。あなたのマッピングの一つEstudianteを1として

答えて

1

は一つだけグラド

Estudianteとグラドは多く対1の関係 しているのでEstudianteは、複数のグラド

を持つことができることができますので、あなたの関係は、この

ようにする必要があります

Estudiante.java

@OneToMany(mappedBy = "estudianteId") 
private List<Grado> lstGrado; 

Grado.java

@JoinColumn(name = "estudianteId", referencedColumnName = "ID") 
@ManyToOne 
private Estudiante estudianteId; 

すべてのグラードのインサートを使用すると、グラドに新しい列を追加し、最新のgra_id

  • を繰り返すことができ順であった場合

    1. いくつかのことをすることができます最新のグラドを見つけるために最新のレコードをYなどとしてマークN
  • +0

    ありがとうございます!私は自分の頭の中で、私はMatriculaクラスを追加しました: クラスMatricula { プライベートEstudiante estudiante; プライベートグラードグラード; } –

    1

    GRADOには多数のESTUDIANTEとEST UDIANTEは多くのGRADOにリンクしており、あなたは多対多の関係を目指しています。そうすれば、リンクテーブルが得られます。

    乾杯!