我正在攻读Spring Core认证,我对 Embeddables JPA课程的工作方式有所怀疑。
所以我有这个例子:
1)映射 T_CUSTOMER 数据库表的客户实体类
@Entity
@Table(name= “T_CUSTOMER”)
public class Customer {
@Id
@Column (name=“cust_id”)
private Long id;
@Embedded
@AttributeOverride
(name="postcode", column=@Column(name="ZIP"))
private Address office;
…
…
…
}
2)地址实体类,它只代表一个地址(并且不映射任何数据库表):
@Embeddable
public class Address {
private String street;
private String suburb;
private String city;
private String postcode;
private String country;
}
正如您在客户实体类中看到的那样,有以下字段:
@Embedded
@AttributeOverride
(name="postcode", column=@Column(name="ZIP"))
private Address office;
@Embedded 和 @AttributeOverride 注释的规则和含义究竟是什么?
我认为这可以通过以下方式运作:
1) T_CUSTOMER 数据库表的某些列不会直接映射到客户实体类,而是映射并存储到地址<的字段中/ strong>类是 Customer 类的字段。
2)名为 ZIP 的表格列使用地址类的邮政编码属性进行映射。
是对还是我错过了什么?
Tnx