zoukankan      html  css  js  c++  java
  • 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>
    

    即可


  • 相关阅读:
    为什么要使用虚拟内存?
    iptables系列
    MySQL 加锁处理分析
    血战的浏览器历史
    TCP协议详解
    OAuth 2.0详解
    Redis 和 I/O 多路复用
    Kubernetes的十大使用技巧
    Nginx动态路由的新姿势:使用Go取代lua
    个人博客实现Archives查询小记
  • 原文地址:https://www.cnblogs.com/mdz3201/p/12558470.html
Copyright © 2011-2022 走看看