Java @Valid注释多次验证bean

Java @Valid注释多次验证bean,java,jpa,jpa-2.0,bean-validation,Java,Jpa,Jpa 2.0,Bean Validation,我也有类似的问题。我添加了@Valid注释。现在它多次验证bean,我也多次收到错误消息 代码示例: @Entity public class Plan extends AbstractEntity { ... @Valid @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER) public Part getPart() { return part; } ...

我也有类似的问题。我添加了
@Valid
注释。现在它多次验证bean,我也多次收到错误消息

代码示例:

@Entity
public class Plan extends AbstractEntity {
    ...
    @Valid
    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    public Part getPart() {
        return part;
    }
    ...
}

@Entity
public class Part extends AbstractEntity {
    ...
    @Valid
    @OneToMany(mappedBy = "part", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    public List<PRO> getProList() {
        return proList;
    }
    ...
}

@Entity
public class PRO extends AbstractEntity {
    ...
    @Valid
    @OneToMany(mappedBy = "pro", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    public List<Sample> getSamples() {
        return samples;
    }
    ...
}

@Entity
public class Sample extends AbstractEntity {
    ...
    @Basic
    @NotNull
    public Integer getCount() {
        return count;
    }
    ...
}
@实体
公共类计划扩展了抽象实体{
...
@有效的
@OneTONE(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
公共部分getPart(){
返回部分;
}
...
}
@实体
公共类部分扩展了抽象实体{
...
@有效的
@OneToMany(mappedBy=“part”,fetch=FetchType.LAZY,cascade=CascadeType.ALL)
公共列表getProList(){
返回proList;
}
...
}
@实体
公共类PRO扩展了抽象实体{
...
@有效的
@OneToMany(mappedBy=“pro”,cascade=CascadeType.ALL,fetch=FetchType.EAGER)
公共列表getSamples(){
返回样品;
}
...
}
@实体
公共类示例扩展了抽象实体{
...
@基本的
@NotNull
公共整数getCount(){
返回计数;
}
...
}

对于本例:我保存了计划,并收到了4次相同的错误消息。

您的
计划
类包括一个
Getter
方法,用于
部分
。是故意的吗?@PM77-1是的,
计划
类包含一个用于
部分
的getter,
部分
类包含一个用于
计划
的getter。这是一个双向连接。但是你的限制在哪里呢?您多次收到哪条错误消息?@Hardy当我为
count
定义一条类似
@NotNull(message=“{errorCount}”)
的消息时,我收到了4次相同的消息。我没有收到
message=“{errorCount}”
错误消息
count:cannot null
示例:cannot null
proList:cannot null
部分:cannot null
。我不完全理解你的答案。你说的“没有消息的我得到”={errorCount}“错误消息…”是什么意思?您能展示一些创建您验证的完整对象的代码吗?例如,如果示例列表中有多个示例实例,并且每个实例都有空计数,那么您确实会多次收到相同的错误消息。但是,如果查看整个约束冲突,您会发现路径不同。