У меня есть транзакционный метод только для чтения, который внутренне вызывает метод другого экземпляра.Это вызывает исключение IllegalTransactionStateException.
Я прочитал, что использование readOnly = false из readOnly = true не работает, так как предыдущая транзакция продолжается.Но это бросает IllegalTransactionStateException?Это ожидаемое поведение?
Реферальный поток: Spring @Transactional распространение только для чтения
Исключение:
org.springframework.transaction.IllegalTransactionStateException: Participating transaction with definition [PROPAGATION_REQUIRED,ISOLATION_DEFAULT; ''] is not marked as read-only but existing transaction is
at org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:487)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:348)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:417)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:255)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)