2011-01-27 33 views
11

現在我正在使用InnoDB表,但什麼讓我困惑的是,如果我在數據庫中使用多個引擎?什麼休眠3.5.1方言是最好的訪問MySQL 5.1

,因爲我用「最好」在它警告說,問題是主觀的,但考慮到問題方言的非常有限的數字,而且我不明白它們之間的區分因素(最擅長)我的標題需要在答案中解釋。

僅供參考這裏的方言問題下org.hibernate.dialect發現:

  • MySQL5Dialect
  • MySQL5InnoDBDialect
  • MySQLDialect
  • MySQLInnoDBDialect
  • MySQLMyISAMDialect

回答

13

的MySQL InnoDB的強化參照完整性; ISAM沒有。

MySQL版本5與早期版本不同。

當沒有這樣的選擇時,MySQLDialect可能是第一個Hibernate實現的遺留問題。

選擇一個與您的MySQL版本(您的問題中的第5版)最相匹配的版本以及您用於創建MySQL數據庫的實施。

+0

好吧好像看起來非常直截了當,在jpa2條件查詢拋出「javax.persistence.PersistenceException:org.hibernate.exception.SQLGrammarException:無法執行查詢」後,系統提示我詢問是否使用MySQL5Dialect,MySQLDialect或MySQL5InnoDBDialect ...這將是另一個問題的主題。 – Quaternion 2011-01-27 00:42:46