2016-02-12 3 views
0

Я использую @Transactional (org.springframework.transaction.annotation) в методе службы, откуда я вызываю слой DAO для извлечения данных из БД.@ Трансакция на уровне обслуживания не работает на слое DAO весной

Однако, я получаю следующее сообщение об ошибке

org.hibernate.HibernateException: No Session found for current thread 

на

sessionFactory.getCurrentSession() 

Я добавил сканирования пакетов для различных файлов, как предложено другими posts.Still не может получить сообщение об ошибке.

Пожалуйста, помогите.Спасибо за миллион.

Ниже приведены файлы, которые я использовал.

applicationContext.xml

<mvc:annotation-driven /> 
    <context:annotation-config/> 
    <context:component-scan base-package="com.BASE_PCKG"></context:component-scan> 

весна-servlet.xml

<mvc:annotation-driven /> 
    <context:component-scan base-package="com.BASE_PCKG.SUB_PCKG.web"></context:component-scan> 

web.xml

... 
<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/applicationContext.xml</param-value> 
    </context-param> 
.... 
<servlet> 
     <servlet-name>spring</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <init-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>/WEB-INF/spring/spring-servlet.xml</param-value> 
     </init-param> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>spring</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 

Кроме того, я настроил диспетчер транзакций в ApplicationContext файле как:

<bean id="txManager"   class="org.springframework.orm.hibernate4.HibernateTransactionManager" primary="true"> 
     <property name="sessionFactory" ref="sessionFactory"/> 
    </bean> 
    <tx:annotation-driven transaction-manager="txManager"/> 
+0

У вас есть пружинный загрузки в вашем загрузчиком классов? Как вы настраиваете свой спящий режим? –

+2

Вы определили transactionManager в своем файле конфигурации для sessionFactory? Также включите в файле конфигурации – Pulkit

+0

, как вы настраиваете контекст hibernate? как вы настраиваете диспетчер транзакций? – AntJavaDev

ответ

0

Добавить @Transactional на daoImpl класса и добавить менеджер транзакций в файле конфигурации:

<tx:annotation-driven/> 

<bean id="transactionManager" 
class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
<property name="sessionFactory" ref="sessionFactory"></property> 
</bean> 
+0

Уже добавлено. Кроме того, уровень обслуживания должен быть транзакционным, а не уровнем DAO. –

+0

Работа над транзакцией на уровне DAO. –

+0

Но это не требуется. –

Смежные вопросы