我有两张桌子:

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

快速回答是,如果你有多对多的关系,你将需要另一张桌子。如果你有一对多或多对一的关系,你就不会。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top