gpt4 book ai didi

java - 在存在@Valid 注释的嵌套对象内部使用时,@AssertTrue 给出JSR-303 问题

转载 作者:行者123 更新时间:2023-12-05 05:35:55 25 4
gpt4 key购买 nike

我的自定义 DTO 类如下:

public class TestDto1 {

private String key;
private String val;

@AssertTrue
private boolean isValid() {
return key !=null || val !=null;
}public class TestDto1 {

private String key;
private String val;

@AssertTrue
private boolean isValid() {
return key !=null || val !=null;
}

我的父 DTO 类:

public class TestDto {


private String id;

@Valid
private TestDto1 tes;

public TestDto1 getTes() {
return tes;
}

public void setTes(TestDto1 tes) {
this.tes = tes;
}

public String getId() {
return id;

在运行应用程序并使用以下 JSON 访问 api 时出现以下错误:

{
"id":"1234",
"tes":{

}

  JSR-303 validated property 'tes.valid' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access)] with root cause

org.springframework.beans.NotReadablePropertyException: Invalid property 'tes.valid' of bean class [com.example.thirdparty.controller.TestDto]: Bean property 'tes.valid' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?

请让我知道这里需要做什么

最佳答案

这不是一个经过验证的字段,而是一种从该方法中读取为虚拟字段的方法。

我认为该方法必须声明为公共(public)的才能进行验证

 @AssertTrue
public boolean isValid() {
return key !=null || val !=null;
}

关于java - 在存在@Valid 注释的嵌套对象内部使用时,@AssertTrue 给出JSR-303 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73401711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com