Why is this an issue?
Marking a non-public method @Transactional
is both useless and misleading because Spring doesn’t "see" non-public
methods, and so makes no provision for their proper invocation. Nor does Spring make provision for the methods invoked by the method it called.
Therefore marking a private
method, for instance, @Transactional
can only result in a runtime error or exception if the
method is actually written to be @Transactional
.
Noncompliant code example
@Transactional // Noncompliant
private void doTheThing(ArgClass arg) {
// ...
}