JPA:为什么注释应用于getter或field

Har*_*ara 4 java annotations hibernate jpa jpa-2.0

为什么jpa注释应用于字段或getter方法.如果我尝试在setter方法上应用注释,则编译器会生成错误.因为编译器忽略了setter方法的注释.他们背后的原因是什么?

Yog*_*ngh 13

这是如何指定的.每JPA规范:

  • 当使用基于字段的访问时,实体类的对象/关系映射注释会注释实例变量,持久性提供程序运行时直接访问实例变量.所有未使用Transient注释注释的非瞬态实例变量都是持久的.
  • 当使用基于属性的访问时,实体类的对象/关系映射注释注释getter属性访问器[7],持久性提供者运行时通过属性访问器方法访问持久状态.未使用Transient注释注释的所有属性都是持久的.
  • 映射注释不得应用于瞬态或瞬态的字段或属性.

你有两个选择.使用字段级别注释或属性(getter方法)注释.没有第三种选择.