2

我正在使用 Hibernate Tools 使用 STS 2.9.2 和 Hibernate Tools 4.0.0 从 MySQL 5.5.27 进行逆向工程。

它正确地生成 POJO 类,但没有拾取跨表定义的外键关系(即根本没有创建集合或关系)。

根据您的经验,这个工具是否适用于 MySQL 或我做错了什么?

谢谢,

鲍勃

4

3 回答 3

1

很多时候mysql的默认引擎也会导致这个问题,即如果创建表的默认引擎是“MyISAM”,那么请将其更改为“InnoDB”;要更改的查询是ALTER TABLE table_name ENGINE = InnoDB; ,希望这有效:)

于 2012-11-06T17:20:18.253 回答
1

好的,我终于成功了!

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

一句话:区分大小写

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

约束FK_Phone_Person外键 ( person_id) 引用Person( person_id)

代替

约束FK_Phone_Person外键 ( person_id) 引用person( person_id)

注意大写。

在花了很多血、汗水和泪水试图让这该死的东西正常工作后,SOO很高兴,而问题一直都是问题所在!

于 2012-10-16T21:25:35.400 回答
0

我的经验是,逆向工程工具需要特定的约束才能工作,如果你有 @OneToMany 关系,它们必须有一个中间表,其中包含两个表的 id 以及你不能有空值或孤立行的约束。

此外,这些表需要根据您的实体进行命名,并且中间表必须命名为owning_entity_entity2可以正常工作。

于 2012-10-16T16:54:09.883 回答