Registering DPL Secondary Keys
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.