【问题标题】:Hibernate Reverse Engineering - Why do I get an ID class?Hibernate 逆向工程 - 为什么我得到一个 ID 类?
【发布时间】:2011-07-30 21:56:12
【问题描述】:

我正在使用 MyEclipse 对 Oracle 数据库中的视图进行休眠逆向工程。

编辑:视图有六列,所有 varchar 类型,没有唯一键。另外,我无法控制视图。

它生成三个类:

  • 经纪人
  • BrokerID
  • BrokerDAO

就其本身而言,一切正常。但是为什么它会创建一个 ID 类呢?我想对 Broker 类使用 JSON 序列化程序来获取数据并在 AJAX 调用中将其发送回浏览器。

现在当我对 Broker 进行序列化时,我得到:

[{
   id: {
     field1: "",
     field2: ""
   }
}, {
   id: {
     field1: "",
     field2: ""
   }
}, {
   id: {
     field1: "",
     field2: ""
   }
}]

而不是我真正想要的是:

[{
  field1: "",
  field2: ""
}, {
  field1: "",
  field2: ""
}, {
  field1: "",
  field2: ""
}]

【问题讨论】:

  • 视图是什么样的?
  • 我编辑了这篇文章。该视图具有所有 varchar 列类型,没有唯一键。另外,我只会提取数据。

标签: java oracle hibernate reverse-engineering myeclipse


【解决方案1】:

每个 Hibernate 对象都需要某种标识符。

如果您不希望此生成的属性包含在您的 JSON 输出中,只需过滤掉该字段即可。根据所使用的 JSON 库,您可以使用 @JsonIgnore 或类似的东西来注释该字段 - 请参阅该库的文档。

【讨论】:

    【解决方案2】:

    您必须进入您的 Db,并将一个字段设置为 PRIMARY KEY。

    之后,hybernate 逆向工程就不再创建 CLASS_ID.java 了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-27
      • 2012-03-15
      • 2014-11-24
      • 2016-06-18
      • 1970-01-01
      • 2011-07-18
      • 2010-09-23
      • 2015-09-21
      相关资源
      最近更新 更多