Включить javax.validation.constraints в arangodb-spring-data - PullRequest
0 голосов
/ 01 июня 2018

Есть возможность включить javax.validation.constraints (например, аннотацию @NOTNULL в модели), используя arangodb-spring-data ?

Напримерв mongodb-spring-data вы должны добавить лайки класса конфигурации:

@Configuration
public class ValidationConfiguration {

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

Я пытался просто использовать аннотации без какой-либо конфигурации, но не работает

1 Ответ

0 голосов
/ 04 июня 2018

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