您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用Hibernate批注@ManyToOne和@OneToMany进行关联

如何使用Hibernate批注@ManyToOne和@OneToMany进行关联

出问题的是以下内容

@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name="idEmployees")
public List<Task> getTasks() {
    return tasks;
}

这是错误的,原因有两个。

@JoinColumn(name="idEmployees")表示:此OneToMany使用名为的连接列(即外键)进行映射idEmployees。但是联接列未命名为idEmployees。idEmployees是Employee表的主键。连接列的名称TasksIdEmployees。输入正确的名称将使映射对于单向OneToMany关联正确。但是关联是双向的,这导致了第二个原因…

在双向关联中,没有必要(这是一个错误)在关联的两侧重复映射信息。一方(多方)必须是关联的所有者并定义映射。另一边必须是反面,只需说一下:去看另一边如何映射此关联。这是使用mapledBy属性完成的,该属性告诉Hibernate关联的另一端的字段或属性名称

        @OneToMany(mappedBy = "employee")
    public List<Task> getTasks() {
        return tasks;
    }

请注意,LAZY是toMany关联的认设置,因此没有必要指定它。

dotnet 2022/1/1 18:15:22 有555人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶