JPA中@Access annoation的用途是什么意思在实体级别?

Ram*_*esh 5 java jpa java-ee

我在实体中看到了这个@ javax.persistence.Access(javax.persistence.AccessType.FIELD).这是什么意思?是否真的需要为实体声明@Access.

JB *_*zet 11

不,这不是必需的,但可能有用.@Access用于指定JPA必须如何访问(获取和设置)实体的映射属性.如果访问类型设置为FIELD,则将直接在字段上读取/设置值,绕过getter和setter.如果设置为PROPERTY,则使用getter和setter访问字段值.

默认情况下(至少使用Hibernate),如果@Id注释位于字段上,则使用FIELD; 如果@Id注释位于getter上,则使用PROPERTY.