JPA中@Access注解在实体级别上的使用是什么意思?

9
我看到了这个用于实体的@javax.persistence.Access(javax.persistence.AccessType.FIELD)。 这是什么意思?声明@Access对于一个实体来说真的是必须的吗?

也许这会有所帮助:https://dev59.com/7mYr5IYBdhLWcg3wM3f6 - RubberPoach
1个回答

17

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

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


但是为什么我需要去调整那个设置呢?如果是为了避免“昂贵”的反射,实际上反射的额外开销是非常微小的(而且,Spring和其他流行的框架一直都在使用反射)。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接