【问题标题】:Hibernate tools reverse engineering creates Set or ListHibernate 工具逆向工程创建 Set 或 List
【发布时间】:2017-06-23 00:04:58
【问题描述】:

两个表ABB 有一个指向 A 的 NOT NULL 外键(多对一)。 A 中没有列,这表明表 B 存在。这意味着关系是单向的

使用 Eclipse 休眠工具逆向工程创建了 POJO 类 ABB 类有一个 A 类型的属性,这是正确的。

但是,为什么类A 有一个属性为List<B>,即使定义的关系不是双向的。

这是为了开发中的任何优势,还是逆向工程的工作方式?

如果有更多表C,D,E...A 具有相同的关系,则A 类将有那么多List<?> 变量,我认为它看起来不太好。有没有办法避免这种情况?

【问题讨论】:

  • 这意味着关系是单向的。抱歉,这是对您的基本原理的完全误解。
  • @AlanHay 为什么会这样?

标签: java hibernate hibernate-tools


【解决方案1】:

Eclipse JPA 工具被设计为在找到从一个表到另一个表的外键时创建双面关系;我没有这方面的参考资料,这是基于多年 Eclipse 使用的经验推论。

这种行为很常见:Eclipse 在类B 上为您创建一个@ManyToOne 字段,这是关系的拥有 端,并在类A 上创建@OneToMany 字段,这是关系的依赖侧。这意味着您需要在拥有方进行操作,如果您希望将任何更改保存到数据库中;这也意味着您可以删除该字段,如果您不需要它。

AFAIK 你不能告诉 Eclipse 避免创建依赖面,你必须自己删除它们。

【讨论】:

  • 那么,休眠工具就是这样工作的,对吧?您能否推荐任何其他休眠逆向工程工具。
  • 我不知道有任何“模式到 bean”工具只会创建关系的一侧。 List<B> 真的打扰你了吗?为什么不直接删除它们?
猜你喜欢
  • 1970-01-01
  • 2012-03-15
  • 2011-01-14
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-06
  • 2016-06-18
相关资源
最近更新 更多