java—如何创建一个端点,它可以接受不同的子类,但在springboot中为每个子类调用特定的javax验证?

wljmcqd8  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(215)

这是我关于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));

    }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题