2017-12-18 4 views
0

hibernateを使ってjavaパーシスタンスを学ぶ中で、hibernateはdialectプロパティを定義することを必須としていました。私は、SQLが共通言語であり、DB通信に使用されているのは混乱しています。異なるDBの異なる方言に行くべきですか?なぜJPA仕様はそれについて気にしない間に厳密に方言を定義することを冬眠する必要がありますか?JPA仕様では必須ではないが、hibernate.dialectプロパティの定義を厳密に要求するのはなぜですか?

答えて

1

通常、Hibernateはhibernate.dialectプロパティを設定する必要はありません。 http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#database-dialect

7.12:

は、ドキュメントは章7.12で言っていることを見てください。

SQLは比較的標準化されていますが、各データベースベンダは サブセットとANSI SQL定義構文のスーパーセットを使用しています。これはデータベースの方言である と呼ばれます。 Hibernateは、各データベースベンダーのorg.hibernate.dialect.Dialectクラスと さまざまなサブクラスを通じて、これらの 方言のバリエーションを処理します。

ほとんどの場合、Hibernateは ブートストラップ時にJDBC接続に関するいくつかの質問をして、適切なDialect を使用するかどうかを判断できます。 使用する適切な方言(およびその解決に影響する能力)を判断するHibernateの機能については、 を参照してください。

何らかの理由で適切なものを特定できない場合や、 カスタムDialectを使用したい場合は、 hibernate.dialect設定を設定する必要があります。

+0

ありがとうございますsimon。それは非常に便利でした。 –

関連する問題