5.6. Persistent Class List

There is a known deficiency in the JDO specification whereby locating a persistent instance by application identity object is not possible until the class of the instance has been loaded by the JVM. This is typically not a problem, but in environments with non-standard class loading and under certain application designs, you may see odd behavior. To work around this deficiency, Kodo allows you to explicitly specify all of your persistent classes as a comma-separated list of full class names in the kodo.PersistentClasses configuration property. This list is entirely optional. All listed classes will will be loaded into the JVM every time you obtain a new persistence manager.

This property is also used to optimize subclass identification: normally, the standard class indicator identifies subclasses by issuing a SELECT DISTINCT <class indicator column> query the first time a base class is used. If you specify this property, however, then the given list is used to calculate subclasses instead.

If this property is used at all, it must name every persistent class. Failure to do so will result in a warning being logged, and may disrupt the inheritance system.