2008-10-03 29 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並給它一個名稱...