0

在此处输入图像描述我正在创建三个表实体,学生、学院和地址。当我尝试将数据插入地址表时,我只在数据库的地址表中得到一个额外的列(student_STUDENT_ID)。请找到随附的屏幕截图。我无法弄清楚为什么这个领域会出现?可以去掉吗?下面是映射这三个实体的代码。

地址表 -

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

然后在您的学生表中,将 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 回答