2008-10-03 25 views
-2

asked this更早,并被告知看看映射。再次与JPA没有意义

我有2个表:一个S_ID(关键)名CLI型

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 
getB(){...} } 

B类仅仅是一个基本的实体类 没有参考A.

希望这是明确的。我的问题 是:我真的需要一个连接表来 做这么简单的连接吗?难道这是 做了一个简单的加入列或 的东西?

所以,现在如果有这个,但JPA是尝试写一些新列的查询不存在(s_s_id

@Entity 
class A{ 
... 
@OneToMany(fetch=FetchType.EAGER, mappedBy="s") 
Collection<B> x; 
} 

@Entity 
class B{ 
@ManyToOne 
A s; 
} 

With these tables: 
A 
s_id(key) name cli type 

B 
sa_id(key) s_id(the keys from A) user pwd. 

我怎样才能做到OneToManyManyToOne加入,使得我不需要一个新的专栏,也不需要一个新的表格?请给我一个例子。问题是B表中缺少外键吗?

如果我离开了映射通过我得到Unknown column 't1.S_S_ID' in 'field list'

如果我把在上映射我得到Unknown column 'S_S_ID' in 'field list'

回答

1

我找到了,我需要添加@JoinColumn并给它一个名称...