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 ...
Get Java Data Objects now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.