2011-02-22 40 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

相关问题