Korzystałem z programowego zarządzania transakcjami na wiosnę, teraz przełączyłem się na zarządzanie transakcjami deklaratywnymi.Wiosenne zarządzanie transakcjami nie działa
SessionFactory
<beans:bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="packagesToScan" value="com.hcentive.cig.domain" />
<beans:property name="hibernateProperties">
<beans:props>
<beans:prop key="hibernate.hbm2ddl.auto">update</beans:prop>
<beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect
</beans:prop>
<beans:prop key="hibernate.show_sql">true</beans:prop>
<beans:prop key="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
TransactionManager
<beans:bean id="transactionManager"
class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<beans:property name="sessionFactory">
<beans:ref bean="sessionFactory" />
</beans:property>
</beans:bean>
Teraz Jeśli uruchomić mój kod
@Override
@Transactional
public Request saveRequest(Request request) {
sessionFactory.getCurrentSession().save(request);
return request;
}
otrzymuję wyjątek oszczędzania nie jest ważny bez aktywnej transakcji
jeśli usunąć poniżej linii
<beans:prop key="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</beans:prop>
uzyskać
No CurrentSessionContext skonfigurowany!
Czy masz ' ' –
rzucić okiem na te odpowiedzi: http://stackoverflow.com/a/4396530/280244 – Ralph
[Zobacz tutaj] (http: // stackoverflow.com/a/25910635/3364187) – Xstian