See https://docs.spring.io/spring-framework/reference/data-access/transaction/declarative/annotations.html Transaction management for non-public methods is only applied by class-based proxies.