protected boolean checkDataObjectValidation(DataObject object) { ValidationResult vr = new ValidationResult(); switch (object.getPersistenceState()) { case PersistenceState.NEW: ((CayenneDataObject) object).validateForInsert(vr); break; case PersistenceState.MODIFIED: ((CayenneDataObject) object).validateForUpdate(vr); break; case PersistenceState.DELETED: ((CayenneDataObject) object).validateForDelete(vr); break; } for (Object o : vr.getFailures()) { ValidationFailure vf = (ValidationFailure) o; String message = vf.getDescription(); if (vf instanceof BeanValidationFailure) { BeanValidationFailure bvf = (BeanValidationFailure) vf; if (bvf.getProperty().equals("modification")) continue; // Défini automatiquement // Champ requis non rempli for (String tail : Arrays.asList(" is required.", " is a required field.", " can not be empty.")) { if (message.endsWith(tail)) { message = propertyMissing(propertyName(object, bvf.getProperty())); break; } } } error(message); } return vr.getFailures().isEmpty(); }