yes, it is only for the composite key. Hibernate needs a Serializable key Object to identify the instatiated entity (e.g. in 1st/2nd level cache, for relationships, in collections) so there is no way around this (all the other keys:
String, Long, Integer, ... have a proper hashCode/equals method implementation and are Serializable too). Think of the Composite key class to be on the same level as these classes :-)
pascal