0

私たちのプロジェクトでは、接続プールとしてc3p0を使用したHibernate(3.3.2)を使用しています。しばらくの間、c3p0.propertiesファイルにいくつかのc3p0プロパティがあり、hibernate.cfg.xmlに他のプロパティがあったようです。最後の2つのc3p0プロパティをhibernate.cfg.xmlに移動し、それらが尊重されていることを確認しました。

c3p0プロパティをhibernate.cfg.xmlで指定できる場合、c3p0プロパティファイルを保持する理由はありますか?そこに設定できないプロパティがある、または私が考えていない別の理由など。2つの場所でc3p0プロパティを指定すると、混乱が生じるだけのようです。

hibernate.cfg.xmlで一部のプロパティを渡すことができないという以前の信念があったと思いますが、これは単なる神話だと思います。それがこの質問の主な理由です。

4

2 に答える 2

3

あなたの言うことはc3p0ドキュメントと一致していないようです。つまり、hibernate.cfg.xmlを介してアクセスできるc3p0パラメーターのサブセットしかないようです。それ以外はすべて、別のc3p0.propertiesファイルを介して設定する必要があります。http://www.mchange.com/projects/c3p0/index.html#hibernate-specificを参照してください

編集:c3p0のドキュメントは完全に間違っているようです。彼らが言うように(例えば、追加のc3p0.propertiesファイルを含める)、それは無視されます。ただし、同じ方法でHibernate構成ファイルにプロパティを追加するだけで、正常に機能します。たとえば、hibernate.cfg.xmlに以下を追加すると、規定の方法では機能しませんでした。

<property name="hibernate.c3p0.acquireRetryAttempts">100</property>
<property name="hibernate.c3p0.debugUnreturnedConnectionStackTraces">true</property>
<property name="hibernate.c3p0.unreturnedConnectionTimeout">120</property>
<property name="hibernate.c3p0.checkoutTimeout">30000</property>

私の人生の2時間は私が戻らないです。:-(

于 2011-05-13T09:43:42.653 に答える
1

いいえ、理由はありません。(私はhibernate.cfg.xmlさえ持っていません-すべてが春の構成にあります)

于 2011-02-22T17:57:06.333 に答える