①、@Access
AccessType.PROPERTY:
--> 通过getter和setter方法访问Entity的变量,可以把变量定义为private;
--> 需要在getter方法上定义字段的属性;
AccessType.FIELD:
--> 直接访问Entity的变量,可以不定义getter和setter方法,但是需要将变量定义为public;
--> 需要在变量上定义字段的属性;
@Access(AccessType.PROPERTY)这个注解既可以写到实体类的上面来标识整个实体类,也可以写在某一个持久化属性的上面只用来标识这一个属性。如果放在实体类上面标识实体类的时候要求这个实体类必须有主键ID的标识设置,否则加上@Access(AccessType.PROPERTY)属性后会报错的。
一般来说@Access(AccessType.PROPERTY)注解都是写在某个持久化属性上面的,因为这样跟这个实体类是否设置主键ID没关系,一般是要在某个持久化属性的set或get方法里给其他属性做复杂处理的时候在写@Access(AccessType.PROPERTY)注解的,也就是说要求这个持久化属性必须走set或get方法。
例如:
@Access(AccessType.PROPERTY)
private Stringdeptype;
@Transient
private Stringpid;
public StringgetDeptype() {
}
public voidsetDeptype(String deptype) {
}