@JsonSubTypes继承和JSR 303验证

时间:2019-08-15 08:22:18

标签: java validation jackson bean-validation hibernate-validator

我有ParentDTOSon类,我使用@JsonSubTypes进行了序列化 当我尝试使用JSR 303验证约束时,子类:

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import javax.validation.constraints.NotNull;
import lombok.Data;
import java.util.Set;
import lombok.Data;
import lombok.EqualsAndHashCode;


@Data
@JsonTypeInfo(
    use = JsonTypeInfo.Id.NAME,
    visible = true,
    property = "type",
    include = JsonTypeInfo.As.EXISTING_PROPERTY)
@JsonSubTypes({
  @JsonSubTypes.Type(value = Son.class, name = "TITLE")})
public abstract class ParentDTO {
  @NotNull(message = WRONG_IS_EMPTY)
  private ParentType type;

  @NotNull(message = WRONG_IS_EMPTY)
  private String key;
}

@Data
@EqualsAndHashCode(callSuper = true)
public class Son extends ParentDTO {
  @Valid
  private Data data;

  public NativeDataAssetDTO() {
    this.data = new NativeDataAssetDTO.Data();
  }

  @lombok.Data
  public class Data {
    @NotNull(message = WRONG_IS_EMPTY)
    @Min(value = 1 ,message = WRONG_NUMBER_MIN )
    private Integer maxLength;
    @NotNull(message = WRONG_IS_EMPTY)
    private DataType type;
  }
}

我没有让maxLength字段受到约束验证,我在做什么错?

0 个答案:

没有答案