如果对象 A 在字段或属性上有 @Valid 注释,则在验证对象 A 时,该字段或属性也将被验证。
我正在查看在方法上具有@Valid 的代码。我的第一个问题是:这里假设它是属性的 setter/getter 吗?
@OneToOne
@Valid
public Contact getContact() {
return contact;
}
所以做上面的操作,相当于
@Valid
联系联系;
我的第二个问题是,当验证对象 A 时,上述注释将始终验证联系人对象吗?即使联系人中的任何内容都没有改变?
最佳答案
在Bean Validation中,属性级注解一般放在getter上。注解字段或相应的 JavaBeans getter 方法之间的区别在于,在后者的情况下,验证引擎将调用 getter 来获取值,而在第一种情况下,直接访问字段值。如果您的 getter 进行任何类型的额外计算等,这可能会产生影响。
关于您的第二个问题,是的,在验证父对象时始终会验证关联的联系人,不会检查更改或类似情况。
关于java - 方法上的 @Valid 注释 (Java EE 6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20946977/