The Bean Validation API (JSR0303) can be hooked up with JDO (DataNucleus extension) so that you have validation of an objects values prior to persistence, update and deletion. To do this
To give a simple example of what you can do with the Bean Validation API
@PersistenceCapable public class Person { @PrimaryKey @NotNull private Long id; @NotNull @Size(min = 3, max = 80) private String name; ... }
So we are validating that instances of the Person class will have an "id" that is not null and that the "name" field is not null and between 3 and 80 characters. If it doesn't validate then at persist/update an exception will be thrown.
A further use of the Bean Validation annotations @Size(max=...) and @NotNull is that if you specify these then you have no need to specify the equivalent JDO "length" and "allowsNull" attributes since they equate to the same thing.