2 q20792136 q20792136 于 2017.09.01 16:23 提问

spring+hibernate4配置多个数据源问题

配置了2个数据源,对应了2个sessionFactory。默认使用的sessionFactory由spring自动创建线程的,但是另外的一个,创建后,在执行sql时直接使用session.getCurrentSession()线程出现问题:No Session found for current thread,能否通过配置自动创建线程,并且使用后自动回收。使用session.openSession()可以,但是要手动关闭,和手动开启,并且如果使用这种方式,感觉配置1个sessionFactory就可以了,只要切换数据源的方法使用openSession()就可以,有没有办法让spring对两个不同的都进行管理。

3个回答

shaobo7705601
shaobo7705601   2017.09.01 17:50

两个数据源应该都是同一个sessionFactory。sessionFactory里边有两个source而已。这样就不会出现session 为空的错误了。只是需要使用sessionFactory的时候指定数据源就好。

qq_37130383
qq_37130383   2017.09.01 17:50

对两个dao分别指定sessionFactory,在XML中配置下,然后service再调用的时候将两个dao都注入

dongfeng9ge
dongfeng9ge   Ds   Rxr 2017.09.02 17:45

不要用SSH了,用SSM吧

Csdn user default icon
上传中...
上传图片
插入图片