Federico Gatti
Federico Gatti

Reputation: 535

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

There is any way to enable javax.validation.constraints (like @NOTNULL annotation in the model) using arangodb-spring-data?

For example in mongodb-spring-data you must add a Configuration Class likes:

@Configuration
public class ValidationConfiguration {

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

I tried simply using the annotations without any configuration but doesn't work

Upvotes: 2

Views: 180

Answers (1)

Christian
Christian

Reputation: 315

There is no thing like ValidatingMongoEventListener in Spring Data ArangoDB. You must validate entities yourself before saving them to the DB.

UPDATE:

You can validate your objects like this:

Use javax.validation.Valid annotation on a controller method:

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

Or do it manually:

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

Upvotes: 2

Related Questions