我已经使用JPA创建了两个表作为个人和地址。我想在这些表格之间给出一对多的关系。如果我在地址表中提供以下内容JPA关系
@OneToMany(mappedBy="address",targetEntity=person.class,fetch=FetchType.EAGER)
表示它不能正常工作。谁能帮我?
在此先感谢。
我已经使用JPA创建了两个表作为个人和地址。我想在这些表格之间给出一对多的关系。如果我在地址表中提供以下内容JPA关系
@OneToMany(mappedBy="address",targetEntity=person.class,fetch=FetchType.EAGER)
表示它不能正常工作。谁能帮我?
在此先感谢。
不知道任何关于你的架构,我会猜测你需要什么。
JPA足够聪明,知道如何加入你的表,所以如果你在两个表中都有id,你实际上不需要有“mappedBy”和“targetEntity”。
你只需要注释你的班级如下:(假设你的关系是一个地址有很多人)。
内的地址类:
@OneToMany
@JoinColumn(name="address_id")
public List<Person> getPeople()
{
return people;
}
这将会把ADDRESS_ID在你的个人表代表及其相关地址的字段。由于您正在声明Person JPA将知道映射到人员表的类型列表(只要Person类用@Entity正确注释)。
如果该关联是双向的,那么您肯定需要'mappedBy'(或者这会导致两个单向关联)。 – 2010-05-21 17:44:25
@Pascal Thivent根据OP提供的零信息做出了单向的假设。 如果是双向的,您还必须在人员等级和所有其他要求中注明地址... – kgrad 2010-05-21 20:14:37
这是一个例子
@ElementCollection
@CollectionTable(name = "NUMBER")
private List<String> number;
您可以添加更多解释吗? – 2016-07-26 19:58:43
需要多一点的信息。在你声明地址的地方显示你的Person类的一个片段,并在你声明Person列表的地址类中显示一个片段。 – 2010-05-21 14:23:06
什么是不正确的措辞?还请显示您的实体。 – 2010-05-21 17:45:50
用这么小的描述来说几乎是不可能的。 – brandizzi 2011-03-21 19:40:39