0

您好我正在尝试通过 Spring 的注入获取休眠的 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();

但是我获得的会话是空的。

通过 sf.getObject().getCurrentSession() 获取 Session 是否正确?

谢谢 :)

4

1 回答 1

1

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

于 2010-11-01T13:04:36.007 回答