0

ここに画像の説明を入力学生、大学、住所の 3 つのテーブル エンティティを作成していました。アドレス テーブルにデータを挿入しようとすると、データベースのアドレス テーブルにのみ 1 つの余分な列 (student_STUDENT_ID) が表示されます。添付のスクリーンショットを見つけてください。なぜこのフィールドが来るのか理解できませんか?取り外せますか?以下は、これら 3 つのエンティティをマッピングするためのコードです。

アドレステーブル -

@ManyToOne
private Student student;
//setters and getters 

学生テーブル -

@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
    @JoinColumn(name="COLLEGE_ID")
    private College college;
     //getters and setters 

    @OneToMany(cascade=CascadeType.ALL)
    @JoinColumn(name="STUDENT_ID")
    private Set<Address> addr;
    //getters and setters 

カレッジテーブル -

@OneToOne(mappedBy="college",cascade=CascadeType.ALL)
    private Student student;
4

2 に答える 2

1

@JoinColumn を Address クラスに移動してみてください

@ManyToOne
@JoinColumn(name = "STUDENT_ID")
private Student student;

次に、Student テーブルで、mappedBy を @OneToMany に追加します。

@OneToMany(cascade=CascadeType.ALL, mappedBy="student")
private Set<Address> addr;
于 2015-12-30T05:49:35.043 に答える
0

実際の構成は次のようになります-

住所クラス -

  @ManyToOne
        @JoinColumn(name="STUDENT_ID")
        private Student student;
//getters and setters 

学生クラス-

@OneToMany(cascade=CascadeType.ALL, mappedBy="student")
            private Set<Address> addr;
      //getters and setters

大学のクラスに変更はありません。

于 2015-12-30T06:06:24.093 に答える