Description
Jan Novotný opened SPR-7448 and commented
When FactoryBean creates CgLib proxy via programmatic Spring proxy support (ie. ProxyFactory), @Transactional
annotation on methods of original class are not picked by the transactional infrastructure. Reason is that the CgLib doesn't copies annotations on methods to the created final subclass and these annotations are not subject of inheritance.
See Jurgen Hoeller expression: https://jira.springframework.org/browse/SPR-975?page=com.atlassian.jira.plugin.system.issuetabpanels%253Aall-tabpanel
There is also open bug on CgLib - but I think it will never get resolved as the CgLib seems quite abadoned now: http://sourceforge.net/tracker/?func=detail&aid=2255414&group_id=56933&atid=482371
There is very simple solution that would address this issue (documented in attached file).
Issue is described in this blog post http://blog.novoj.net/2010/08/10/when-does-your-spring-transactional-attribute-apply-on-cglib-proxies/ in more detail.
Proposed solution is available at (see commentaries in referenced article): http://github.com/novoj/SpringTransactionTest
Affects: 2.5.6
Attachments:
Issue Links:
- Comprehensively cache annotated methods for interfaces and superclasses [SPR-16675] #21216 Comprehensively cache annotated methods for interfaces and superclasses
Referenced from: commits 99733ae