1
我创建一个字段级别的约束,就像这个例子https://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html/validator-usingvalidator.html#d0e281放然后在我的领域是一个对象Hibernate的验证对象中ConstraintValidator同春启动
public classe Car {
@validateEngine
private Engine engine;
...
}
我的引擎类:
public class Engine {
@ValidadeEngineName
private String name;
@NotNull
private Integer size;
}
它单曲可能在我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())....
}
}
合成使用叔他从@Hervian代码,工作,但在我validateEngineNameImpl我失去了@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
}
}
它s possible don
吨失去了@Autowired,或从validateEngineImpl通过somethig我validateEngineNameImpl?
它几乎工作,在我的引擎我有另一个自定义约束,我需要得到一些春季引导Autowired服务,所以如果我与此代码调用,我的服务不自动装配,我更新我的问题与这另一个代码.. tks –
和其他的事情,当我运行Set> set = validator.validate(car);不要回到我的看法从汽车验证的消息,只有从我的冷杉customcontraint消息 –