Мне нужно скопировать свойства из dto в класс сущности.
Я использую BeanUtils.copyProperties ().
В теле запроса я отправляю как показано ниже:
{
"userName":"test",
"userStatus": "I",
}
Класс DTO:
public class UserDto {
private String userName;
private String userStatus;
public User buildUser() {
User user = new User();
BeanUtils.copyProperties(this, user);
return user;
}
}
Класс сущности:
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Long userId;
@Column(name = "user_name")
private String userName;
@Enumerated(EnumType.STRING)
@Column(name = "user_status")
private UserStatus userStatus;
}
примечание: userStatus может быть пустым полем в таблице.
Сервисный код:
User user = userDto.buildUser();
Я получаю значение userStatus как ноль в классе сущности User.
Когда я изменил UserDto.userStatus на тип enum, тело запроса не принимает пустое значение.
Как мне преобразовать String в enum во время BeanUtils.copyProperties ()?