我使用spring(DB2,C3P0)的休眠模板Hibernate會話在啓動時未初始化
應用程序啓動但連接未打開。 第一次從客戶端c3p0進行查詢後,init啓動並實際打開連接。但是這需要2-3秒才能顯示出在自己的啓動過程中第一個客戶端的速度變慢。
如何強制休眠在啓動時打開數據庫?
代碼[編輯]
<bean id=hibernateproperties >
<property name="properties">
<props>
<prop key="hibernate hbm2ddl|dialect|query.substitutions|show_sql </prop>
<prop key="hibernate.c3po.minPoolSize">1</prop>
<prop key="hibernate.c3po.maxPoolsize">5</prop>
<prop key="hibernate.c3po.timeout">500</prop>
<prop key="hibernate.c3po.max_statements">50</prop>
<prop key="hibernate.c3po.testconnectionOnCheckout">true</prop>
<prop key="hibernate.c3po.minActive">1</prop>
</property>
</bean>
<bean id=sessionfactory
class=AnnotationSessionFactory
properties=hibernateproperties
dataSource=c3p0dataSource>
<property name="packagesToScan" >
<list>
<value>myPackages</value>
</list>
</property>
</bean>
在日誌中沒有C3P0直到我手動創建查詢初始化。
[編輯] 我調試代碼,並調用SessionFactory.getSession()時,它會發現該會話並沒有創建和初始化與c3p0會話。在實際查詢之前,有日誌行 初始化c3p0池(帶類和選項)。 我猜AnnotationSessionFactory對會話init使用懶惰的方法。
注: 我設置的彈簧懶豆初始化爲false
代碼在哪裏? –
你在服務器中使用它嗎? –
@AdamArold感謝您的支持。代碼部分在某種程度上是不可見的。現在它應該被修復。 – pnemec