1
我在Spring 3中使用Hibernate3。我試圖用Spring來啓動hibernate事務。 下面給出的是我的配置Hibernate SessionFactory到Spring
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
運行應用程序時我收到以下錯誤。
HibernateException: get is not valid without active transaction
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:341)
我在休眠配置XML
<property name="hibernate.current_session_context_class">thread</property>
它使用Hibernate事務是在下面的一行代碼:
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
Book book = (Book)session.get(Book.class, id);
什麼可能是錯誤的呢? current_session_context_class的值是線程以外的任何值嗎?