2

我有 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之类的东西来完成吗?

4

3 回答 3

2

不,您不需要 OneToMany 的连接表。查看@mappedBy 注释

于 2008-10-03T14:43:09.403 回答
1

为此,您不需要 JoinTable。如果 B 类没有引用 A 类,那么以下内容就足够了

@Entity class A...{ 
@OneToMany(fetch=FetchType.EAGER)     
Collection getB(){...} }

在大多数情况下,您可能需要双向关系,在这种情况下 B 引用 A。在这种情况下,您需要查找 @mappedBy 注释。保罗提到的。

于 2008-10-20T14:21:06.727 回答
0

快速回答是,如果您有一个多对多关系,您将需要另一个表。如果您有一对多或多对一的关系,则不会。

于 2008-10-03T14:44:38.947 回答