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.