Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JPA bean验证使用字段还是属性访问?_Jpa_Bean Validation - Fatal编程技术网

JPA bean验证使用字段还是属性访问?

JPA bean验证使用字段还是属性访问?,jpa,bean-validation,Jpa,Bean Validation,JPA bean验证使用字段还是属性访问?它应该为JPA和验证使用相同的访问类型。如何告诉验证提供者应该使用哪一个 public class Foo { @NotNull private String name; @Size(20) public String getName() { } } Bean验证约束可以在字段和属性getter上。然而,规范建议只使用一种访问策略,并且在使用JPA时,使用与持久性相同的访问策略 以下是Bean验证规范的相

JPA bean验证使用字段还是属性访问?它应该为JPA和验证使用相同的访问类型。如何告诉验证提供者应该使用哪一个

public class Foo {

    @NotNull
    private String name;

    @Size(20)
    public String getName() {

    }

}

Bean验证约束可以在字段和属性getter上。然而,规范建议只使用一种访问策略,并且在使用JPA时,使用与持久性相同的访问策略

以下是Bean验证规范的相关部分(见第5.1.2节):

约束声明可以应用于字段和属性 对于相同的对象类型。但是,不应使用相同的约束 在字段及其关联属性(约束)之间复制 验证将应用两次)建议将其用于对象 持有约束声明以遵守单个状态访问 策略(带注释的字段或属性)

注 Java持久性和Bean验证可实现最大的可移植性、持久性 承载Bean验证约束的属性应该使用相同的 Java持久化中使用的访问策略。换句话说,把你的 同一元素上的Bean验证约束注释(字段或 getter)作为Java持久性注释

当一个字段是 通过约束声明进行注释,使用字段访问策略 访问由该约束验证的状态

当一个财产 属性访问策略使用约束声明进行注释 用于访问由该约束验证的状态