I don't pretend to understand it all, but here's how Hessian does its work:
https://github.com/ebourg/hessian/blob/git-svn/src/com/caucho/hessian/io/StringValueDeserializer.java
That is using java.lang.reflect.Constructor, so is that is aware of
serialVersionUID?
https://github.com/ebourg/hessian/blob/git-svn/src/com/caucho/hessian/io/StringValueDeserializer.java
That is using java.lang.reflect.Constructor, so is that is aware of
serialVersionUID?
Now I'm really wondering why Cayenne is bothering with @Serializable and serialVersionUID in the first place.
If a superclass doesn't have any data involved in serialization, it doesn't need any annotation; subclasses can still be @Serializable.
The subclasses - well, they're the programmer's domain, he can add @Serializable and serialVersionUID as needed, or leave them out if unnecessary.
I don't see a use case for generating serialVersionUID or @Serializable in the first place.
(Unless I'm overlooking something. But what could that be?)