【发布时间】:2016-04-02 13:31:21
【问题描述】:
我创建了一个字段级约束,就像这个例子https://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html/validator-usingvalidator.html#d0e281 然后放在我的字段中,它是一个对象
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
}
}
Its possible dont 丢失了@Autowired,或者将某些东西从 validateEngineImpl 传递给我的 validateEngineNameImpl?
【问题讨论】:
标签: java spring hibernate spring-boot hibernate-validator