Аннотация @Valid не работает в моем приложении RESTJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Аннотация @Valid не работает в моем приложении REST

Сообщение Anonymous »

Код: Выделить всё

import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.annotation.*;
Почему, если я отправлю отрицательный возраст или пустое имя, аннотация @Valid не будет работать, и человек сохранится в базе данных?
Есть следующий JSON, который отправляется на сервер.

Код: Выделить всё

{
"name": "",
"age": -30
}
@Entity Person:

Код: Выделить всё

@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Column(name = "name")
@NotEmpty(message = "Name mustn't be empty!")
@Size(min = 2, max = 20, message = "Name must be between 2 and 20 characters long!")
private String name;

@Column(name = "age")
@Min(value = 1, message = "Age must be greater than 0!")
private int age;
Метод контроллера:

Код: Выделить всё

@PostMapping
public ResponseEntity create(@RequestBody @Valid Person person, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
StringBuilder errorMsg = new StringBuilder();

List errors = bindingResult.getFieldErrors();
for (FieldError error : errors) {
errorMsg.append(error.getField()).append(" - ").append(error.getDefaultMessage()).append(";");
}

throw new PersonNotCreatedException(errorMsg.toString());
}

personService.savePerson(person);

return ResponseEntity.ok(HttpStatus.OK);
}
Изображение
Изображение

org.springframework.validation.BeanPropertyBindingResult: 0 ошибок

Подробнее здесь: https://stackoverflow.com/questions/785 ... y-rest-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»