两个表A
和B
。 B
有一个NOT NULL外键(多对一),指向A
。 A
中没有列,表示B
表存在。这意味着关系是单向
使用Eclipse hibernate工具反向工程创建POJO类A
和B
。类B
有一个类型为A
的属性,这是正确的。
但是,为什么类A
的属性为List<B>
,即使定义的关系不是双向的。
这对于开发中的任何优势还是这样,逆向工程如何工作?
如果有更多的表格C,D,E...
与A
具有相同的关系,那么班级A
将拥有那么多List<?>
个变量,我认为它看起来并不像不错。有什么方法可以避免这种情况吗?
答案 0 :(得分:0)
Eclipse JPA工具用于在从表中找到外键时创建双面关系;我没有参考这个,这是基于Eclipse多年使用的经验推论。
这种行为非常常见:Eclipse为您在类@ManyToOne
上创建了一个B
字段,该字段是该关系的拥有一侧,@OneToMany
类A
上的字段,它是关系的依赖方面。这意味着如果要将任何更改保存到数据库,则需要在拥有方进行操作;这也意味着你可以删除该字段,如果你不需要它。
AFAIK你不能告诉Eclipse避免创建依赖方,你必须自己删除它们。