Debug

问题描述:Hibernate 自动创建 Mysql 时,无法生成外键。

不支持外键一般是数据库引擎的问题,把数据库引擎换成 InnoDB 即可。

InnoDB 是一种 MySQL 数据库引擎。MySQL5.5 及之后使用它做为默认引擎。它提供了ACID 兼容的事务(Transaction)功能,并提供外键支持。

在 hibernate.cfg.xml 配置文件中把数据库方言改成:

<!-- 配置Hibernate的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

但发现 IDEA 提示不推荐使用,说过时了,而且所有带 InnoDB 的方言都过时了
搜索发现因为 MySQL 从 5.5 开始默认使用 InnoDB 引擎,Hibernate 作者认为没有必要再区分

所以只要在 hibernate.cfg.xml 配置文件中把数据库方言升级成:

<!-- 配置Hibernate的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL55Dialect</property>

<!-- 配置Hibernate的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL57Dialect</property>

即可


原文地址:https://www.cnblogs.com/mdz3201/p/12558470.html