In spring-orm-8.2.3.RELEASE the problem described in Ticket # 23943 is still present.
At line 405
txObject.setReadOnly(definition.isReadOnly());
txObject is of type JpaTransactionObject
line 378 : JpaTransactionObject txObject = (JpaTransactionObject) transaction;
method isReadOnly() is not in the service contract of JpaTransactionObject.
Because of this I get the following message :
Caused by: java.lang.NoSuchMethodError: 'void org.springframework.orm.jpa.JpaTransactionManager$JpaTransactionObject.setReadOnly(boolean)'
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:405)
... 37 more
Comment From: jhoeller
This is a runtime version mismatch since that method is definitely present in the same-versioned JdbcTransactionObjectSupport class (which serves as base class for JpaTransactionObject), otherwise our build wouldn't even pass the compile phase.
Please check your spring-orm versus your spring-jdbc jar versions in your runtime classpath: There is probably an older spring-jdbc jar around (pre-dating 5.2.1 which introduced the JPA read-only flag), please make sure it is upgraded to the same version as your spring-orm jar.