用于Hibernate会话的Spring配置

时间:2010-11-01 04:06:01

标签: hibernate spring configuration sessionfactory hibernate-session

您好 我试图通过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()?

谢谢:)

1 个答案:

答案 0 :(得分:1)

我认为您不应该像这样访问会话。在您的bean中使用HibernateTemplate或注入SessionFactory并在其上调用getCurrentSession()。否则,您的交易管理将无法正确处理