如何创建一个可以接受不同子类但在SpringBoot中为每个子类调用特定javax验证的终结点?

问题描述

这是我关于stackoverflow的第一个问题,请保持友善。

我有以下问题:

目前,我有两个不同的端点来为父类的两个子类创建和持久化实体。我想创建一个端点,该端点可以在请求正文中接受两个类的json表示形式,并正确调用各个验证。对于我的验证,我将javax批注与我自己编写的其他批注一起使用,并且对子类的验证存在很大差异。 因此,可以创建一个单一的端点来确定它是否获得了子类A或B的表示形式并调用正确的javax验证吗?

一个代码示例,我的类如下所示:

我的课程


public class ParentClass{


}
public class ChildClassA extends ParentClass{


    @NotBlank(...)
    @Pattern(...)
    @Size(...)
    private String propertyA;

    @NotBlank()
    @CustomValidationA
    private String propertyB;


    @Pattern(...)
    @Size(...)
    private String propertyC;
}


public class ChildClassB extends ParentClass{


    @NotBlank(...)
    @Pattern(...)
    @Size(...)
    private String propertyA;

    @NotBlank()
    @CustomValidationB
    private String propertyB;

    @NotBlank()
    @Pattern(...)
    @Size(...)
    private String propertyC;


    @NotNull()
    @CustomValidationC()
    @CustomValidationD()
    private LocalDate propertyD;
}

我的端点


@PostMapping(value = "/endpint/newChildClassA",produces = "application/json")
    public ResponseEntity<String> newChildCLassA(@Valid @RequestBody ChildClassA childClassA) throws JsonProcessingException {

//doStuff

        return ResponseEntity.created(null).body(new ObjectMapper().writeValueAsstring(stuff));


    }

  @PostMapping(value = "/endpoint/newChildClassB",produces = "application/json")
    public ResponseEntity<String> newChildCLassB(@Valid @RequestBody ChildClassB childClassB) throws JsonProcessingException {

//doStuff

        return ResponseEntity.created(null).body(new ObjectMapper().writeValueAsstring(stuff));


    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)