javax.persistence.TransactionRequiredException: выполнение запроса на обновление/удаление: миграция весенней загрузки с 1.5.4 на 2.7.5

Я переношу приложение весенней загрузки с весенней загрузки 1.5.4 на весеннюю загрузку 2.7.5. В старом коде у меня есть спящий режим на уровне DAO. (вызвала ли миграция проблему, я не нашел особенного в этой проблеме)

файл свойств содержит сведения о соединении и используется ниже ключа

spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext

Класс приложения имеет следующие аннотации,

@EnableTransactionManagement @EnableJpaRepositories(basePackages = {"repository package"}) @ComponentScan(basePackages = {"base package"}) @EntityScan(basePackages = {"entity package"})

Код ДАО:

       private EntityManager entityManager;

 private Session getSession() {
     return entityManager.unwrap(Session.class);
 }
 // problematic code
 public void doSomething(){
        String hqlBuilder = "Update Query statement"
       Query query = getSession().createQuery(hqlBuilder);
       
       int result = query.executeUpdate();
 }```

Service code:

Service class has @Transctional defined at class level however it throws exception on invoking the doSomething() method on DAO instance 

`**Caused by: javax.persistence.TransactionRequiredException: Executing an update/delete query**
 at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:445)
 at org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1692)
 at <removed the package path>.dao.impl.LastViewedHistoryElementDaoHibernate.insertOrUpdate(LastViewedHistoryElementDaoHibernate.java:122)
 at impl.LastViewedHistoryElementDaoHibernate$$FastClassBySpringCGLIB$$f8fba493.invoke(<generated>)
 at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
 at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
 ... 271 common frames omitted`

**In DAO method returns it throws the TransactionRequiredException : No Transaction in progress**


Thank you, I did applied the @EnableTransactionManagement @Transactional, added spring jpa. I did configure Transaction manager in config also however not luck,                          

 ```@Autowired
     HikariDataSource dataSource;
     @Bean
     public LocalSessionFactoryBean sessionFactory() {
         LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
         sessionFactory.setDataSource(dataSource);
         sessionFactory.setPackagesToScan(
                 new String[]{"<My packages>"});
         //sessionFactory.setHibernateProperties(hibernateProperties());
 
         return sessionFactory;
     }
 
     @Bean
     public PlatformTransactionManager transactionManager() {
         HibernateTransactionManager hibernateTransactionManager
                 = new HibernateTransactionManager();
         hibernateTransactionManager.setSessionFactory(sessionFactory().getObject());
         return hibernateTransactionManager;
     }```  

but still same error as Caused by: javax.persistence.TransactionRequiredException: no transaction is in progress
 at org.hibernate.internal.AbstractSharedSessionContract.checkTransactionNeededForUpdateOperation(AbstractSharedSessionContract.java:445)
 at org.hibernate.internal.SessionImpl.checkTransactionNeededForUpdateOperation(SessionImpl.java:3496)
 at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1399)
 at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1394)
 at org.springframework.orm.hibernate5.SessionFactoryUtils.flush(SessionFactoryUtils.java:113)
 at org.springframework.orm.hibernate5.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:95)
 at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:97)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:916)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:727)
 at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:711)
 at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:654)
 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:407)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
 at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)