在arangodb-spring-data中启用javax.validation.constraints

时间:2018-06-01 10:58:55

标签: spring spring-data-jpa arangodb

有什么方法可以使用 arangodb-spring-data 启用 javax.validation.constraints (比如模型中的@NOTNULL注释)?

例如在 mongodb-spring-data 中,您必须添加一个配置类,如:

@Configuration
public class ValidationConfiguration {

  @Bean
  public ValidatingMongoEventListener validatingMongoEventListener() {
    return new ValidatingMongoEventListener(validator());
  }
  @Bean
  public LocalValidatorFactoryBean validator() {
    return new LocalValidatorFactoryBean();
  } 
}

我尝试过简单地使用没有任何配置的注释但不起作用

1 个答案:

答案 0 :(得分:1)

Spring Data ArangoDB中没有像ValidatingMongoEventListener这样的东西。在将实体保存到数据库之前,您必须自己验证实体。

<强>更新

您可以像这样验证您的对象:

在控制器方法上使用javax.validation.Valid注释:

@PostMapping("/myobjects")
@ResponseBody
public ResponseEntity<?> saveMyObject(@Valid @RequestBody MyObject obj) {
    repo.save(obj);
    return ResponseEntity.status(HttpStatus.CREATED).build();
}

或者手动完成:

@Autowired
private javax.validation.Validator validator;

public void saveMyObject(MyObject obj) {
    Set<ConstraintViolation<MyObject>> violations = validator.validate(obj);
    if (!violations.isEmpty()) {
         throw new ConstraintViolationException(violations);
    }
    repo.save(obj);
}