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:默认的accessType字段或属性是什么?_Jpa - Fatal编程技术网

JPA:默认的accessType字段或属性是什么?

JPA:默认的accessType字段或属性是什么?,jpa,Jpa,JPA:默认的accessType字段或属性是什么 public class Foo { @Column(length=10) public String name; //@Column(length=10) public String getName() { } } 文件中未提及。官方规范 2.3.1默认访问类型第23页 默认情况下,单个访问类型(字段或属性访问)应用于实体层次结构。实体层次结构的默认访问类型由映射注释在实体层次结构的实体类和映射超类的属性上

JPA:默认的accessType字段或属性是什么

public class Foo {
   @Column(length=10)
   public String name;

   //@Column(length=10)
   public String getName() {
   }
}

文件中未提及。

官方规范

2.3.1默认访问类型第23页

默认情况下,单个访问类型(字段或属性访问)应用于实体层次结构。实体层次结构的默认访问类型由映射注释在实体层次结构的实体类和映射超类的属性上的位置确定,这些属性不显式 指定访问类型

通过访问注释[6]明确指定访问类型 ,如第2.3.2节所述

2.3.2 显式访问类型 可以为单个实体类、映射超类或可嵌入类指定独立于默认值的访问类型 通过应用于类的Access注释来创建实体层次结构。此显式访问类型规范不会影响实体层次结构中其他实体类或映射超类的访问类型。以下规则适用: • 当访问(字段)应用于实体类、映射超类或可嵌入类时,可以在该类的实例变量上放置映射注释,并且持久性提供程序运行时通过该类定义的实例变量访问持久性状态。所有未使用瞬态注释注释的非瞬态实例变量都是持久的

当对此类应用访问(字段)时,可以 有选择地使用 在属性访问的类中。指定 持久性提供程序运行时访问的持久性属性,该属性必须是desig- 内化 访问权(财产) . [8] 如果放置了映射注释,则行为未定义 在类为其定义的任何属性上 未指定访问权限(属性)。从超类继承的持久状态是根据 那些超类

结论: 字段或getter上的第一个注释确定对整个实体的访问。

使用访问权限(属性)时…规则将更改

@Access(value=AccessType.FIELD)
@Entity(name="STUDENT")
public class Student { 
 ... all mus be annotated on FIELD

}

为什么JPA没有为整个项目指定一致性的方法?如何确定字段或getter上的第一个注释?反射没有这个信息。