Ich erstelle einen Feldebene Zwang nur wie in diesem Beispiel https://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html/validator-usingvalidator.html#d0e281 und setze dann in meinem Bereich, der ein Objekt istHibernate Validate Objekt innerhalb ConstraintValidator mit Frühlings-Boot-
public classe Car {
@validateEngine
private Engine engine;
...
}
meine Motorklasse:
public class Engine {
@ValidadeEngineName
private String name;
@NotNull
private Integer size;
}
`s möglich in meinem validateEngineImpl
public class validateEngineImpl implements ConstraintValidator<validateEngine, String> {
@Override
public void initialize(validateEngine constraintAnnotation) {
System.out.println("s");
}
@Override
public boolean isValid(Engine value, ConstraintValidatorContext context) {
if(value == null){
return true;
}else{
//HERE I NEED TO execute one validation in engine,
but I want to use the annotations, something like
Validator.valide(value), or I need to validate one by one? Strings.isNullOrEmpty(value.getName())....
}
}
t Verwenden er Code aus @Hervian, arbeitet aber in meinem validateEngineNameImpl verlor ich die @Autowired
public class validateEngineNameImpl implements ConstraintValidator<validateEngineName, String> {
@Autowired
private MyService myService;
@Override
public void initialize(validateEngine constraintAnnotation) {
System.out.println("s");
}
@Override
public boolean isValid(Engine value, ConstraintValidatorContext context) {
//Here my myService are not autowired
}
}
Es s possible don
t die @Autowired verloren, oder passieren somethig meiner validateEngineNameImpl von validateEngineImpl?
Es hat fast funktioniert, in meiner Engine habe ich eine andere benutzerdefinierte Einschränkung, dass ich einige Autowired-Service mit Spring-Boot zu bekommen, also wenn ich mit diesem Code aufrufen, meine Dienst nicht autowired bin, aktualisiere ich meine Frage mit diesem anderen code .. tks –
und andere Sache, wenn ich Run Set> set = validator.validate (Auto); Kehre nicht zu meiner Ansicht die Nachricht von der Autovalidierung zurück, nur die Nachricht von meiner ersten customcontraint –