我在这里有一个由三联表维护的具有--关系的PERSON
数据库ADDRESS
。-关系实际上是一对多的。ADDRESS_TYPE
PERSON_ADDRESS
PERSON
ADDRESS
PERSON
ID 名字 姓氏 -- --------- -------- 1 约翰·多伊 2简·多伊
ADDRESS
ID 街市 -- ---------- ------------- 1 家乡街 1 家乡 2 办公街 1 办公城 3 主街 1 主城 4 商业大厦 1 商业城
ADDRESS_TYPE
身份证名称 -- -------------- 1 个家庭住址 2 办公地址
PERSON_ADDRESS
PERSON_ID ADDRESS_TYPE_ID ADDRESS_ID --------- --------------- ---------- 1 1 1 1 2 2 2 1 3 2 2 4
出于实际原因,我希望我的Person
实体最终如下:
public class Person {
private Address homeAddress; // Insertable/updateable by ADDRESS_TYPE_ID=1
private Address officeAddress; // Insertable/updateable by ADDRESS_TYPE_ID=2
}
JPA 2.0 注释是否有可能实现这一点?
我已经阅读了JPA wikibook 的 Map Key Columns 章节,似乎我必须使用 a @MapKeyJoinColumn
,但我并不完全清楚如何在这种情况下成功使用它。我希望看到一个@JoinColumn
示例,但在 wikibook 的代码片段中没有它。
如果用 不可能做到这一点,那么也欢迎使用可能在 a@MapKeyJoinColumn
的帮助下的替代方法,只要我可以在实体中得到 a和。@MapKeyClass
Map<AddressType, Address>
getHomeAddress()
getOfficeAddress()
Person