题
我有两张桌子:
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。
希望这很清楚。我的问题是:我真的需要一个连接表才能做这么简单的连接吗?这不能用简单的连接列或其他东西来完成吗?
解决方案
您不需要JoinTable。如果B类没有提到A类,那么以下就足够了
@Entity class A...{
@OneToMany(fetch=FetchType.EAGER)
Collection getB(){...} }
在大多数情况下,您可能需要双向关系,在这种情况下B具有对A的引用。在这种情况下,您需要查找@mappedBy注释。保罗提到。
其他提示
不,您不需要OneToMany的联接表。看看@mappedBy annoatation
快速回答是,如果你有多对多的关系,你将需要另一张桌子。如果你有一对多或多对一的关系,你就不会。
不隶属于 StackOverflow