java - 方法上的 @Valid 注释 (Java EE 6)

标签 java jakarta-ee bean-validation

如果对象 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/

相关文章:

java - 使用 Java Bean Validation 验证 String 数组的元素

java - 如何更改 android.support.v7.widget.Toolbar 上的文本?

java - 无论如何,有没有将 mysql 表转换为 Java 类

java应用程序架构数据交换

validation - 如何使用 @Valid 注释在 Spring 3 中验证复杂的模型对象?

java - BeanValidation 的上下文相关验证

java - 带有时间戳和日期字段的 JPA 选择查询无法检索结果

java - SharedPreferences.getBoolean 抛出荒谬的异常

java - 如何维护 Java/J2EE Web 应用程序的缓存?

java - JSF:MyFaces CODI 类型安全导航和 f:viewParam