Бросок распространения транзакции только для чтения, IllegalTransactionStateException - PullRequest
0 голосов
/ 21 мая 2019

У меня есть транзакционный метод только для чтения, который внутренне вызывает метод другого экземпляра.Это вызывает исключение 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)
...