This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Eswar Kaligotla wrote:Hi all,
One fundamental/dumb question, why IdClass should implement Serializable? Why Embeddable class is not Serializable?
I've not found an exhaustive explanation on the subject but here my two pennies:
idClass is annotated at the Class level, whereas EmbeddedId is used at method or field level. If i remember
correctly, serializable is used by Entity classes when sending the object remotely, so, what i think is that
for EmbeddedId, since they are annotated inside the entity, if the entity is serializable it might take care
of the embedded class as well.
For the idClass, since the annotation is at the class level, maybe the Entity serializable interface cannot
be applied and therefore, the idClass has to take care on his own for the serialization part.
Maybe the reason to make it a requirement for the idClass to be serializable is to make it safe for the use
that will be done later...like being sent remotely...
Don't take this as a final answer, as this is are just a couple of thoughts until some expert on the matter
will shed some light on this ;)