理解JPA OneToMany关系中的mappedBy属性

3

我正在查看定义实体之间关系的示例,不确定onetomany关系中mapped by是指表列的名称还是类的名称。

 @OneToMany(fetch = FetchType.LAZY, mappedBy = "company")
1个回答

6

以上都不是。它是关联另一侧的属性/特性的名称。例如:

public class Car {
    @OneToMany(mappedBy = "theCar")
    private List<Wheel> wheels;
}

public class Wheel {
    @ManyToOne
    @JoinColumn(name = "COL_CAR")
    private Car theCar;
}

在上面的例子中,mappedBy = "theCar" 的意思是:我是双向关联的反向端,它在类Wheel中被映射为属性theCar
而在类Wheel中,这个关联定义了关联是如何映射的:使用一个名为COL_CAR的连接列。

COL_CAR列是在这个例子中Car类的一部分吗? - user1154644
不,COL_CAR列是WHEEL表的一部分。WHEEL中的每一行都有一个COL_CAR列,其中包含轮子所属汽车的ID。 - JB Nizet
谢谢!另外,我该如何指定只有关系的一侧知道另一侧的情况?例如,我的Team类有一个Contacts的ArrayList,但Contact类不知道Team?我该如何指定这种单向关系(单向)? - user1154644
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#collections-mapping - JB Nizet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接