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.
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html#transaction-declarative-annotations
Springの@Transactional アノテーションはpublic method にしか利用ができないらしい。別にエラーも吐かれないのでなかなか気が付かなくてハマったのでメモ。