#spring-boot #hibernate
Вопрос:
В Spring Boot @PostMapping есть ли способ обнаружить пустые поля в теле входящего запроса перед отображением тела запроса в определенный класс?
Мое отображение поста выглядит так,
@PostMapping("/post")
public ResponseEntity<User> insertFromBody(
@Valid @RequestBody User user) {
//call service class
}
Класс пользователя
@Entity
@Table(name="Users")
public class User {
@Id
@JsonProperty("USER")
@Column(name = "USER")
private String userId;
@JsonProperty("FIRST_NAME")
@Column(name = "FIRST_NAME")
private String firstname;
@JsonProperty("LAST_NAME")
@Column(name = "LAST_NAME")
private String lastname;
@JsonProperty("AGE")
@Column(name = "AGE")
private String age;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
Тело запроса может быть следующим,
1st type
{
"ID":1,
"FIRST_NAME":"JOHN"
}
2nd type
{
"ID":1,
"FIRST_NAME":"JOHN",
"LAST_NAME":null,
"AGE":null
}
Итак, перед сопоставлением тела запроса с объектом пользователя есть ли способ обнаружить пустые поля?
(хотите различать типы запросов 1 и 2)
Ответ №1:
- добавьте зависимость «org.springframework.boot:spring.boot.starter.проверка»
- добавить
@NotNull
в поле не-null - Добавить
@Valid
Ответ №2:
Да , используйте @NotNull
и @Valid
, это вызовет исключение, поэтому я рекомендую использовать обработчик исключений для форматирования сообщения. Вот статья о том, как использовать валидатор