Java 父项具有子项列表或子项具有父项引用
我正在设计一个数据库。我正在使用hibernate。我有两种类型的类层次结构 案例1:Java 父项具有子项列表或子项具有父项引用,java,mysql,database,hibernate,Java,Mysql,Database,Hibernate,我正在设计一个数据库。我正在使用hibernate。我有两种类型的类层次结构 案例1: class Parent{ private Long id private String name; } class Child{ private Parent parentId; private String name; } 案例2: class Parent{ private Long id private String name; private List<Child&
class Parent{
private Long id
private String name;
}
class Child{
private Parent parentId;
private String name;
}
案例2:
class Parent{
private Long id
private String name;
private List<Child> childs;
}
class Child{
private String name;
}
类父类{
私人长id
私有字符串名称;
私人名单儿童;
}
班童{
私有字符串名称;
}
我的问题是哪种方法更好?这取决于您希望如何处理和访问父子关系 如果您只想从Child only访问父级,并且Child是父级的所有者,则情况1是好的 如果您希望从父级访问子级列表,但单个子级没有对父级的引用,则情况2很好。这一次,父对象成为子对象的所有者,您可以控制级联,就像删除父对象时可以删除与其关联的所有子对象一样
我个人喜欢案例3,它是两者的混合体。在Hibernate中,您可以将这些关联映射到集合和注释,如
@OneToMany
等,正如您的第二个示例所示
我建议大家继续阅读。为什么不两本都读呢?Hibernate管理得非常好:
class Parent {
private Long id
private String name;
@OneToMany
private List<Child> children;
}
class Child {
private String name;
@ManyToOne
private Parent parent;
}
类父类{
私人长id
私有字符串名称;
@独身癖
私人名单儿童;
}
班童{
私有字符串名称;
@许多酮
私人家长;
}
有关更多详细信息,请参阅。我更喜欢方法1