Entity subclasses that define secondary keys must now be registered prior to storing an instance of the class. This can be done in two ways:
The EntityModel.registerClass()
method
may be called to register the subclass before opening the
entity store.
The EntityStore.getSubclassIndex()
method may be called to implicitly register the subclass after
opening the entity store.
Failure to register the entity subclass will result in an
IllegalArgumentException
the first time an
attempt is made to store an instance of the subclass. An exception will
not occur if instances of the subclass have previously been stored,
which allows existing applications to run unmodified in most cases.
This behavioral change was made to increase reliability. In several cases, registering an entity subclass has been necessary as a workaround. The requirement to register the subclass will ensure that such errors do not occur in deployed applications.