【问题标题】:Hibernate Tools: Mappings and Annotations FailHibernate 工具:映射和注释失败
【发布时间】:2012-10-14 00:14:37
【问题描述】:

这让我发疯——我很确定 Hibernate 可以确定映射 表之间的关系,从而在生成的 POJO 中反映这一点。

除非它不是。

我在 STS 和 Hibernate Tools 4.0.0 中使用 MySQL,并且在 Person Phone 和 Phone PhoneType 和我之间有一对多和一对一的表关系能够使用“休眠代码生成配置”生成“域代码”和“DAO 代码”,但是这两个文件都没有表之间的任何映射。

现在这是一个可能的问题:

为了获得任何注释,我打开了选项'生成 EJB3 注释'。现在我在这里使用普通的旧 Hibernate,而 不是 JPA。

所以我的问题是:

  1. Hibernate 工具可以为普通的旧 Hibernate 生成注释吗?
  2. 它能否在 POJO 中生成映射信息(即@manytomany / @manytoone)?

非常感谢您的帮助,

鲍勃

【问题讨论】:

  • 好的,所以我很确定#1 的问题是肯定的,您可以使用它来生成适用于 Hibernate 的 ORM 的 Hibernate 特定代码。但是仍然没有关于如何将外键关系反向工程到 @manytomany / @manytoone 等的消息。请帮助!!!
  • 数据库中是否存在正确的外键约束?
  • @Firo 是的,我有一个@manytoone 关系,另外我尝试了一个更复杂的数据库,其中有很多@manytomany 关系,但没有任何工作正常。

标签: java hibernate hibernate-mapping hibernate-annotations hibernate-tools


【解决方案1】:

好的,我终于成功了!

问题在于,就像所有具有技术性质的事物一样,既简单又深刻。

一句话:区分大小写

我用大写字母(即 Person、Phone)创建了我的表,我使用 MySQL Workbench 创建了外键,它们看起来像这样:

CONSTRAINT FK_Phone_Person FOREIGN KEY (person_id) REFERENCES Person (person_id)

而不是

CONSTRAINT FK_Phone_Person FOREIGN KEY (person_id) REFERENCES person (person_id)

注意大写。

在花费大量的鲜血、汗水和泪水试图让这该死的东西发挥作用后,SOO 很高兴,而问题一直都是问题所在!

【讨论】:

    【解决方案2】:

    工作过

    我从 STS eclipse 中的 Hibernate 工具插件创建了新的逆向工程 XML "hibernateII.reveng.xml",它解决了这个问题。

    虽然我也尝试过更改现有文件的内容,但没有成功,新旧文件的内容相同,很奇怪,但新文件解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多