From commentcomment by @m-deinum:
Make your PersonService
publicas well as the method you are calling.
This seems to have done the trick for several users. The same thing is also covered in this answerthis answer, citing manual saying:
When using proxies, you should apply the @Transactional annotation only to methods with public visibility. If you do annotate protected, private or package-visible methods with the @Transactional annotation, no error is raised, but the annotated method does not exhibit the configured transactional settings. Consider the use of AspectJ (see below) if you need to annotate non-public methods.