JPA实体类是否可以包含两个嵌入(@Embedded)字段?一个例子是:
@Entity
public class Person {
@Embedded
public Address home;
@Embedded
public Address work;
}
public class Address {
public String street;
...
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,一个Person可以包含两个Address实例 - 家庭和工作.我正在使用JPA和Hibernate的实现.当我使用Hibernate Tools生成模式时,它只嵌入一个Address.我想要的是两个嵌入式Address实例,每个实例的列名都有区别或预先设置了一些前缀(例如家庭和工作).我知道@AttributeOverrides,但这要求每个属性都被单独覆盖.如果嵌入的object(Address)变大,因为每个列需要单独重写,这会很麻烦.
使用JPA annoations,我想重用相同的嵌入对象,如下所示:
@Entity
public class User {
@Embedded
public Address homeAddress;
@Embedded
public Address workAddress;
}
@Embeddable
public class Address {
public String code;
public String city;
...
}
Run Code Online (Sandbox Code Playgroud)
我可以使用@AttributeOverrides,@ AttributeOverride和@Column指定SQL列名,但它是verbos.是否可以仅为homeAddress和workAddress指定要添加到每列的前缀?
谢谢,
泽维尔