【发布时间】:2021-11-17 17:43:28
【问题描述】:
下面的场景可以使用@Valid (javax.validation.Valid)吗?
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.validation.Valid;
import com.incident.tool.model.IncidentModel;
@Service
public class JsonStringToObjectConverter {
public IncidentModel convertToObject(String json) throws JsonMappingException, JsonProcessingException {
@Valid
IncidentModel incidentModel = new ObjectMapper().readValue(json, IncidentModel.class);
return incidentModel ;
}
}
这里JsonStringToObjectConvertor 以字符串的形式接收JSON,并将其映射到IncidentModel 类。我在IncidentModel 中以下列方式定义了一些验证,我想在继续之前验证ObjectMapper 在IncidentModel 中映射的字段:
@Component
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class IncidentModel extends IncidentInfo {
@NotEmpty
private String empId;
@NotEmpty
@Size(min = 2, max = 30)
private String empName;
@NotEmpty
private String title;
private String description;
private String assignedTo;
private String severity;
private String incidentNumber;
private String dateCreated;
private String dateClosed;
private String closingNotes;
}
上面的格式好像不行,convertToObject方法中的@Valid有什么替代方法吗?
感谢您的帮助。
【问题讨论】:
标签: java spring-boot hibernate-validator