【发布时间】:2019-01-21 12:20:15
【问题描述】:
我必须将属性从 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 值设为 null。
当我将 UserDto.userStatus 更改为枚举类型时,请求正文不接受空值。
如何在 BeanUtils.copyProperties() 期间从字符串转换为枚举?
【问题讨论】:
标签: java rest spring-boot enums dto