我正在尝试在DTO上使用javax验证。但是我希望根据此DTO的操作来应用这些验证。
可以说我有以下DTO:
@Getter @Setter
public class CustomerDTO {
@NotNull
private String id;
@NotNull
private String name;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用相同的DTO进行创建,更新和删除操作。在进行更新和删除操作的情况下,我希望“ id”为NotNull,但在Create中必须为null。
但是由于我使用相同的DTO,并且在控制器级别使用@Valid注释,因此它适用于所有属性。并且以下API失败,因为“ id”不能为null
public CustomerDTO createCustomer(@Valid CustomerDTO customer, BindingResults results){
if(results.hasErrors()){
throw IllegalArgumentsException("Required params are mising");
}
customerService.create(customer);
}
Run Code Online (Sandbox Code Playgroud)