JPA和2个简单表
时间:2020-03-06 15:04:42 来源:igfitidea点击:
我有2张桌子:
A s_id(key) name cli type B sa_id(key) s_id user pwd
所以在Jpa
我有:
@Entity class A...{ @OneToMany(fetch=FetchType.EAGER) @JoinTable( name="A_B", joinColumns={@JoinColumn(name="a_id", table="a",unique=false)}, inverseJoinColumns={@JoinColumn(name="b_id", table="b", unique=true)} ) Collection<B> getB(){...} }
类b只是基本实体类,没有引用A。
希望这很清楚。我的问题是:我真的需要一个联接表来进行这种简单的联接吗?不能用简单的joincolumn或者其他方式完成此操作吗?
解决方案
不,我们不需要OneToMany的联接表。看看@mappedBy注释
快速的答案是,如果我们具有多对多关系,则将需要另一个表。如果我们具有一对多或者多对一关系,则不会。
我们不需要为此的JoinTable。如果B类没有对A类的引用,则满足以下条件
@Entity class A...{ @OneToMany(fetch=FetchType.EAGER) Collection getB(){...} }
在大多数情况下,尽管我们可能需要双向关系,在这种情况下B引用了A。在这种情况下,我们将需要查找@mappedBy批注。保罗提到的。