我想基于一个方向连接来连接表,这是我的代码:
Class Person {
@id
String person_sk;
int person_id;
String Person_name;
@OneToMany
@joinColumn (name="person_reference_id")
List<address> getAddresses() {}
}
class Address
{
@id
int person_reference_id (referred from Person);
@id
int address_id;
@id
int phone_id;
String street_name, zip_code;
}
现在当我执行getAddress时,它不起作用,因为我的连接基于person_ref_id,Person类中的@id(primaryKey)列是person_sk。
如果我使用referencedColumn,那么它也不起作用。
答案 0 :(得分:2)
我怎样才能做到这一点?
规范化您的数据库以使用常见的PK-FK关系。如果需要 - 定义复合PK。
答案 1 :(得分:-1)
不寻常的数据模型,您可能需要重新考虑它。
此外,通常最好使用mappedBy和逆@ManyToOne定义@OneToMany。
JPA不直接支持您的数据模型,但如果您使用的是EclipseLink,则可以使用DescriptorCustomizer定义OneToManyMapping并使用您需要的任何外键或连接条件。