Transaction problem - saveAndFlush inside execute throw "no transaction in progress" #460
Replies: 3 comments 1 reply
-
This does not look like a problem in db-scheduler on first glance. |
Beta Was this translation helpful? Give feedback.
-
@kagkarlsson Thanks for quick response.
}` `public interface InboxMessageRepository extends JpaRepository<InboxMessage, Long> { }`
|
Beta Was this translation helpful? Give feedback.
-
One solution if your app is built on top of spring boot and uses hibernate >5.2 is to set:
in application.yaml configuration. Kind regards |
Beta Was this translation helpful? Give feedback.
-
When i call saveAndFlush of JpaRepository inside execute of recuring task i got exception:
org.springframework.dao.InvalidDataAccessApiUsageException: no transaction is in progress; nested exception is javax.persistence.TransactionRequiredException: no transaction is in progress at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:403) ~[spring-orm-5.3.22.jar:5.3.22] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:235) ~[spring-orm-5.3.22.jar:5.3.22] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.22.jar:5.3.22] at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.22.jar:5.3.22] at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.3.22.jar:5.3.22] at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.22.jar:5.3.22] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:174) ~[spring-data-jpa-2.7.2.jar:2.7.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.22.jar:5.3.22] at jdk.proxy3/jdk.proxy3.$Proxy236.saveAndFlush(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.22.jar:5.3.22] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215) ~[spring-aop-5.3.22.jar:5.3.22] at jdk.proxy3/jdk.proxy3.$Proxy236.saveAndFlush(Unknown Source) ~[na:na] at com.ncts.trader.scheduler.PollTaskWithPersistentSchedule.lambda$0(PollTaskWithPersistentSchedule.java:77) ~[classes/:na] at com.github.kagkarlsson.scheduler.task.helper.Tasks$RecurringTaskWithPersistentScheduleBuilder$1.execute(Tasks.java:189) ~[db-scheduler-13.0.0.jar:na] at com.github.kagkarlsson.scheduler.ExecutePicked.executePickedExecution(ExecutePicked.java:95) ~[db-scheduler-13.0.0.jar:na] at com.github.kagkarlsson.scheduler.ExecutePicked.run(ExecutePicked.java:74) ~[db-scheduler-13.0.0.jar:na] at com.github.kagkarlsson.scheduler.FetchCandidates.lambda$run$1(FetchCandidates.java:110) ~[db-scheduler-13.0.0.jar:na] at java.base/java.util.Optional.ifPresent(Optional.java:178) ~[na:na] at com.github.kagkarlsson.scheduler.FetchCandidates.lambda$run$2(FetchCandidates.java:97) ~[db-scheduler-13.0.0.jar:na] at com.github.kagkarlsson.scheduler.Executor.lambda$addToQueue$0(Executor.java:53) ~[db-scheduler-13.0.0.jar:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Beta Was this translation helpful? Give feedback.
All reactions