Interesting. I'm using lookup-method in production without any problems. But, there are no transactions and no other proxies so I guess we got lucky. Do the clashes only occur within the class or does it cause problems everywhere? In other words, am I safe if the resource class is not transactional, but is uses a service class that is?
I believe it might be limited if you're trying to make the methods in the Resource class itself transactional, but I can't remember exactly. It might have happened in your scenario too.
The problem for me was that transactions which should have rolled back didn't. This is really sneaky, because I had to crank up the spring logging to 'debug' in order to see the transaction output. Then, I had to throw an exception in one of my DAO methods and watch to see if the transaction rolled back.
What solved it was by not using lookup-method and instead using a different factory approach to creating Resources. This allowed me to remove the CGLib dependency out of my configuration, which I personally like (the fewer dependencies that rely on "magic" the better, in my mind).
Adam

