null Values

A field of an object type can have a null value in Java. The datastore you access may or may not support null values, and the support may vary depending on the type of the data. Therefore, you should specify how the JDO implementation should handle a field with a null value when it is written to a datastore that cannot store a null value.

The field element’s null-value attribute in the metadata specifies how this situation should be handled. This attribute can be given one of the following values:

"none"

Indicates that a Java null value should be stored as a null in the datastore. If the datastore cannot store a null value, a JDOUserException is thrown.

"exception"

Indicates that a JDOUserException should always be thrown when a field has a null value, even if the datastore can store a null value for the field.

"default"

Indicates the implementation should convert the Java null value to the datastore’s default value for the field’s datatype.

If you do not provide a value for the null-value attribute, it defaults to "none“. If you never want to store a field with a null value, then you should set the null-value attribute to "exception“.

If the null-value attribute for a field is set to "default" and the field is null in a transaction, the datastore’s default value is stored, based on the field’s datastore datatype. The next transaction that accesses the instance will obtain this datastore default value. You will have lost the fact that the field was originally null.

For ...

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.