日期:2014-05-16  浏览次数:20382 次

JPA,在@OneToMany里加入mappedBy属性避免生成中间表

使用JPA的时候,如果A B两个实体间是一对多,多对一的关系,如果不在@OneToMany里加入mappedBy属性会导致自动生成一个多余的中间表。比如:

@Entity
public class A {
    @OneToMany(mappedBy="a")
    public Set<B> bs = new HashSet<B>(0);
}
 
@Entity
public class B {
    @ManyToOne
    public A a;
}

这样写会只成生成表A和表B,B中会有一个到表A的外键。但是如果不加mappedBy=”a”, 那么就会再生成一张A_B表。

?