> 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?
http://hessian.caucho.com/ says that Hessian is cross-language. Which rules out Java's standard serialization anyway. 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?)