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

Enable javax.validation.constraints in arangodb-spring-data

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

例如在mongodb-spring-data中你必须添加一个配置Class likes:

@Configuration
public class ValidationConfiguration {

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

我试过在没有任何配置的情况下简单地使用注释,但不起作用

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);
}