我使用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