0

我们的项目使用 Hibernate (3.3.2) 和 c3p0 作为我们的连接池。有一段时间,似乎 c3p0.properties 文件中有一些 c3p0 属性,而 hibernate.cfg.xml 中有其他属性。我刚刚将最后两个 c3p0 属性移动到 hibernate.cfg.xml 并确认它们受到尊重。

当 c3p0 属性可以在 hibernate.cfg.xml 中指定时,是否有任何理由保留 c3p0 属性文件?比如有一个属性不能在那里配置,或者我没有想到的其他原因。在我看来,在两个地方指定 c3p0 属性只会引起混乱,

我认为以前有一种观点认为某些属性无法在 hibernate.cfg.xml 中传递,我认为这只是一个神话。这就是提出这个问题的主要原因。

4

2 回答 2

3

您所说的似乎与 c3p0 文档不匹配。也就是说,似乎只有一部分 c3p0 参数可以通过 hibernate.cfg.xml 访问。其他所有内容都必须通过单独的 c3p0.properties 文件进行设置。请参阅http://www.mchange.com/projects/c3p0/index.html#hibernate-specific

编辑:似乎 c3p0 文档完全错误。如果你按照他们说的去做(例如包含一个额外的 c3p0.properties 文件),它将被忽略。但是,如果您只是以相同的方式将属性添加到休眠配置文件中,它就可以正常工作。例如,将以下内容添加到 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>

我有两个小时的生命,我不会回来。:-(

于 2011-05-13T09:43:42.653 回答
1

不,没有理由。(我什至没有 hibernate.cfg.xml - 一切都在 spring 配置中)

于 2011-02-22T17:57:06.333 回答