转-JPA 批注参考(1)
图 1-1 JPA 实体生命周期回调事件批注
属性
必需
说明
joinColumns
要指定映射到持久属性的连接列,请将 joinColums 设置为 JoinColumn 实例的数组(请参阅 @JoinColumn)。
如果使用了基于属性的访问,则映射的为嵌入对象中的属性名称,如果使用了基于字段的访问,则映射的为字段名称。示例 1-1 显示了示例 1-2 中的实体扩展的 @MappedSuperclass。示例 1-2 显示了如何在实体子类中使用 @AssociationOverride 覆盖 @MappedSuperclass Employee 中定义(默认情况下)的 @JoinColumn 以便关联到 Address。属性
必需
说明
value
要指定两个或更多覆盖,请将 value 设置为 AssociationOverride 实例的数组(请参阅 @AssociationOverride)。示例 1-3 显示了如何使用此批注指定指定多个 @AssociationOverride。
属性
必需
说明
column

示例 1-4 显示了示例 1-5 中的实体扩展的 @MappedSuperclass。示例 1-5 显示了如何使用实体子类中的 @AttributeOverride 覆盖 @MappedSuperclass Employee 中定义(默认情况下)的 @Column,以便基本映射到 Address。
如果使用 @AttributeOverride,则 Employee 表包含以下列:
ID
VERSION
ADDR_STRING
WAGE
如果不使用 @AttributeOverride,则 Employee 表包含以下列:
ID
VERSION
ADDRESS
WAGE
属性
必需
说明
value
示例 1-6 显示了如何使用此批注指定两个属性覆盖。
示例 1-6 @AttributeOverrides
@Entity@AttributeOverrides({@AttributeOverride(name="address", column=@Column(name="ADDR_ID")),@AttributeOverride(name="id", column=@Column(name="PTID"))})public class PartTimeEmployee extends Employee {@Column(name="WAGE")protected Float hourlyWage;public PartTimeEmployee() { ... }public Float getHourlyWage() { ... }public void setHourlyWage(Float wage) { ... }}