Hibernate version: 3.0.5, annotations 3.0b2
I have a base class for my entities called 'Entity' -- it contains a number of getters that are not persistent but follow the bean naming conventions, so I declare those @Transient. So far so good. I also use java.beans.Introspector to get information about my beans' properties. Once I filter out those base class properties, everything works fine. Now, some of these non-persistent getter methods I would like to declare as 'final' so that they cannot be overriden by child classes. If I do, the three properties named in the title show up in my introspection results. It's not a huge deal to filter them out as well, but I'd like to understand why this happens. I imagine it's some CGLIB trickery to be able to override final methods, but if they're @Transient, why is it even trying? Obviously, they won't need to be proxied!
|