Marking a non-public method @Transactional is both useless and misleading because Spring does not recognize
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 annotated as @Transactional.
Make the method public or remove the @Transactional annotation.
@Transactional // Noncompliant
void doTheThing(ArgClass arg) {
// ...
}
@Transactional // Noncompliant
private void doTheOtherThing(ArgClass arg) {
// ...
}
@Transactional
public void doTheThing(ArgClass arg) {
// ...
}
private void doTheOtherThing(ArgClass arg) {
// ...
}