【问题标题】:Hibernate to use InnoDB instead of MyISAMHibernate 使用 InnoDB 而不是 MyISAM
【发布时间】:2012-09-28 08:59:38
【问题描述】:

在创建表时如何让休​​眠以使用 InnoDB 而不是 MyISAM? Hibernate: Create Mysql InnoDB tables instead of MyISAM 的建议对我不起作用。

我正在使用 Glassfish 3.1.2 和 MySql 5。我还在 Mac OSX Lion 上通过 XAMPP 安装了 MySQL。

【问题讨论】:

  • 顺便说一句,我已将persistence.xmlhibernate.cfg.xml 都更改为使用org.hibernate.dialect.MySQL5InnoDBDialect。当失败时,我尝试了org.hibernate.dialect.MySQLInnoDBDialect。什么都没有。
  • 将 InnoDB 设置为默认引擎怎么样? (无论如何强烈推荐)
  • @a_horse_with_no_name,我一直在调查。目前尚不清楚如何做到这一点。我打开了 xampp my.cnf 文件,但没有行说 default-table-type 注释掉。
  • 如果不存在,则添加它。

标签: mysql hibernate glassfish-3


【解决方案1】:

经过大量研究,我了解到将数据库默认设置为 InnoDB 并不是一个好习惯。给出了很多原因,例如 InnoDB 价格昂贵。鉴于所有原因,我得出的结论是,如果将 InnoDB 设为默认是最佳实践,那么很可能数据库将被配置为这样。所以我一直在寻找不同的解决方案。

无论如何,解决方案是这样的: 转到 glassfish 并将以下属性添加到相关的 JDBC 连接池中。

Name: SessionVariables
Value: storage_engine=InnoDB.

这对我来说就像一个魅力。 如果有人有更好的解决方案,我真的很想听听。

【讨论】:

    猜你喜欢
    • 2010-11-30
    • 1970-01-01
    • 2019-01-14
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2012-05-15
    • 2015-05-04
    相关资源
    最近更新 更多