Enhancement Effects on Your Code
It is important for you to understand how enhancement affects your persistent classes. Enhancement does not alter the logic or functional behavior that you have defined. It adds code to mediate all access to a field to ensure that its value has been read from the datastore and that any modifications are tracked. You will not see any behavioral differences between transient instances of enhanced classes and transient instances of the same nonenhanced classes.
The PersistenceCapable
interface is designed to avoid name conflicts with fields and methods
that you define. All of its declared method names are prefixed with
"jdo“. To avoid selecting a name the
enhancer uses, you should not declare a persistent class with fields or
methods that start with "jdo“. The
reference-enhancement contract adds additional methods and fields that
begin with "jdo" to your
classes.
The enhancer does not change the behavior of introspection. All of the fields and methods added to an enhanced class are exposed when you use the Java reflection APIs.
Your enhanced classes will have dependencies on the JDO JDOImplHelper , StateManager
, and PersistenceCapable interfaces, defined in the javax.jdo.spi package. Therefore, your
enhanced classes need to have the jdo.jar file that contains their definitions available in your
classpath at runtime.
Class enhancement will not impact source-line-level debugging. You can debug your enhanced classes using the line numbers of your original ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access