2011-02-22 42 views
0

我們的項目使用Hibernate(3.3.2)和c3p0作爲我們的連接池。有一段時間,似乎c3p0.properties文件中有一些c3p0屬性,而hibernate.cfg.xml中有一些屬性。我剛剛將最後兩個c3p0屬性移到了hibernate.cfg.xml中,並確認它們正在受到尊重。當你使用hibernate.cfg.xml時,是否有任何理由保留c3p0.properties文件?

當c3p0屬性可以在hibernate.cfg.xml中指定時,是否有任何理由保留c3p0屬性文件?比如存在一個不能在那裏配置的屬性,或者我沒有想到的另一個原因。在我看來,在兩個地方指定c3p0屬性只會導致混淆,我認爲之前有人認爲某些屬性無法在hibernate.cfg.xml中傳遞,我認爲這只是一個神話。這是這個問題的主要原因。

回答

1

不,沒有理由。 (我甚至沒有hibernate.cfg.xml - 一切都在春季配置)

+0

太好了 - 這就是我需要的所有保證:) – 2011-02-22 19:39:09

3

你說什麼似乎不符合c3p0文檔。即似乎只有一部分c3p0參數可以通過hibernate.cfg.xml訪問。其他一切必須通過一個單獨的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小時我的生活,我不會回去了。 :-(

+0

是的,我認爲是我提出這個問題的最初原因 - 但是,我已經忘記了那一點。似乎確實有某些特徵無法通過其他方式傳遞...... – 2011-05-13 15:25:23

相關問題