JPA关系

时间:2010-05-21 14:18:58

标签: java jpa entity-relationship

我使用JPA创建了两个表作为人员和地址。我想在这些表之间给出一对多的关系。如果我给出以下

 @OneToMany(mappedBy="address",targetEntity=person.class,fetch=FetchType.EAGER)
地址表中的

表示它无法正常工作。任何人都可以帮助我吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

在不了解您的架构的情况下,我会猜测您需要什么。

JPA很聪明,知道如何加入你的表,所以如果你在两个表中都有id,你实际上不需要“mappedBy”和“targetEntity”。

您只需按如下方式注释您的课程:(假设您的关系是一个地址有很多人)。

在Address类中:

@OneToMany
@JoinColumn(name="address_id")
public List<Person> getPeople()
{
    return people;
}

这会将address_id作为person表中的一个字段来表示其关联的地址。由于您要声明人员JPA将知道的类型列表映射到人员表(只要使用@Entity正确注释Person类)。

答案 1 :(得分:0)

这是一个例子

 @ElementCollection
@CollectionTable(name = "NUMBER")
private List<String> number;