我们的项目使用Hibernate(3.3.2)和c3p0作为我们的连接池。有一段时间,似乎c3p0.properties文件中有一些c3p0属性,而hibernate.cfg.xml中有一些属性。我刚刚将最后两个c3p0属性移动到hibernate.cfg.xml并确认它们受到尊重。
当在hibernate.cfg.xml中指定c3p0属性时,有没有理由保留c3p0属性文件?比如有一个无法在那里配置的属性,或者我没想到的另一个原因。在我看来,在两个地方指定c3p0属性只会引起混淆,
我认为以前认为某些属性无法在hibernate.cfg.xml中传递,我希望这只是一个神话。这是这个问题的主要原因。
答案 0 :(得分: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个小时我不会回来。 : - (
答案 1 :(得分:1)
不,没有理由。 (我甚至没有hibernate.cfg.xml - 一切都在弹簧配置中)