小编Ram*_*dam的帖子

基于操作的javax验证

我正在尝试在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)

java validation spring

0
推荐指数
1
解决办法
737
查看次数

标签 统计

java ×1

spring ×1

validation ×1