您好 我试图通过Spring的注入获得hibernate的Session。
这是我的春天语境xml:
<!-- hibernate's session factory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:./hibernate.cfg.xml</value>
</property>
</bean>
<!-- the transaction manager -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
以下是代码:
private static ApplicationContext ctx;
if (ctx == null) {
ctx = new ClassPathXmlApplicationContext("springContext.xml");
}
LocalSessionFactoryBean sf = ctx.getBean(LocalSessionFactoryBean.class);
session = sf.getObject().getCurrentSession();
但是我获得的会话是null。
通过sf.getObject()获取Session是否正确.getCurrentSession()?
谢谢:)
答案 0 :(得分:1)
我认为您不应该像这样访问会话。在您的bean中使用HibernateTemplate
或注入SessionFactory
并在其上调用getCurrentSession()
。否则,您的交易管理将无法正确处理