Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ClassOne {
- @Autowired
- ClassTwo classTwo;
- public void mainMethod() {
- Query query = em.createNativeQuery(...);
- classTwo.runTransaction(new Runnable() {
- @Override public void run() {
- query.executeUpdate();
- }
- });
- }
- }
- @Component
- class ClassTwo {
- @Transactional
- public void runTransaction(Runnable runnable) {
- runnable.run();
- }
- }
- Executing an update/delete query javax.persistence.TransactionRequiredException: Executing an update/delete query
- at org.hibernate.jpa.spi.AbstractQueryImpl.executeUpdate(AbstractQueryImpl.java:71)
- at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:601)
- at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:310)
- at $Proxy55.executeUpdate(Unknown Source)
- at ...ClassTwo.runTransaction(...)
- at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
- at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
- at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
- at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
- at ...ClassOne.mainMethod(...)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement