首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL的Hibernate生成索引和同名外键

MySQL的Hibernate生成索引和同名外键
EN

Stack Overflow用户
提问于 2012-07-13 04:31:41
回答 1查看 3K关注 0票数 2

因此,在Hibernate管理的一个类中,我有以下属性定义:

代码语言:javascript
复制
@ManyToOne(optional = false)
private Company company;

在为MySQL创建数据库架构时,Hibernate会自动为该字段创建一个外键和索引:

代码语言:javascript
复制
KEY `FK334B8608339B7FC2` (`company_id`),
CONSTRAINT `FK334B8608339B7FC2` FOREIGN KEY (`company_id`) REFERENCES `companies` (`id`)

如您所见,hibernate对索引(键)和外键约束使用相同的名称。这似乎并不困扰MySQL,但当我尝试使用其他工具(例如mysqldiff)时,它会报告存在重复的约束(因为FK和索引具有相同的名称)。

这是hibernate的错误(它不应该生成两个同名的不同项),还是工具的问题,他们错误地认为这些是重复的?

仅供参考:我正在使用Hibernate 3.4.0.GA和MySQL 5.1.44

谢谢!

约翰。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-13 12:07:26

根据我的经验,hibernate通常会在FK字段上创建一个外键和索引,并使用不同的名称。我不明白为什么hibernate会奇怪地生成相同的名称。

您可以使用@ForeignKey(name="")@Index@IndexColumn来更改外键或索引名称。这将避免这种麻烦。

但是,它看起来有一个带有@OneToOnebug

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11460165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档