首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用hibernate创建外键

使用hibernate创建外键
EN

Stack Overflow用户
提问于 2013-01-03 10:51:02
回答 1查看 1.1K关注 0票数 0

我在Hibernate和外键中遇到了以下问题:

当我第一次部署我的web应用程序时,Hibernate配置了以下参数(包括许多其他参数):

  • databasePlatform设置为“泛型”(非引擎专用)方言org.hibernate.dialect.MySQLDialect
  • hibernate.hbm2ddl.auto设置为update

由于默认引擎是MyISAM,Hibernate逻辑上创建了带有索引的MyISAM表,忽略了创建外键(因为MyISAM不支持此类约束)。

现在我想将每个表迁移到InnoDB,我希望Hibernate自动创建缺少的外键。不幸的是,Hibernate似乎只是在寻找索引:

  • 如果索引存在,Hibernate将不会创建相应的外键;
  • 如果删除索引,Hibernate将同时创建索引和外键。

因为我不想删除架构中的每个索引,所以您知道如何让Hibernate创建外键,即使创建了索引也是如此?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2013-01-03 13:48:24

我的建议是允许hibernate重新创建整个模式,因为这是您的开发数据库。

但是,如果您有很多不想丢失的测试数据,那么我将使用可用的MySQL命令创建一个脚本,自动删除Hibernate的所有索引以重新创建它们。您需要的命令如下:

代码语言:javascript
复制
show tables;

show index from `table_name`;

drop index `index_name` on `table_name`;

将这些组织成某种形式的程序脚本(shell、python或应用程序)。你可以走了。

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

https://stackoverflow.com/questions/14137403

复制
相关文章

相似问题

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