2012-03-20 73 views
0

我使用JPA有豆在實體bean的這樣一個工作列表上的JBoss AS 7創建列被創建,但它不包含Id,這導致JPA在其中一列(SECTION_ID)上創建唯一約束。這不是我想要的,因爲一個部分可以有多個組件。一個組件也可以用於多個部分。JPA @JoinTable沒有爲ID

我已經嘗試過

@JoinTable(name="SECTION_COMPONENT",  
    joinColumns = { 
@JoinColumn(name="section_id", unique = false)   
}, 
inverseJoinColumns = 
@JoinColumn(name="component", unique = false) 
} 

我猜JPA至少需要一個唯一的列,所以它只是補充說,到最後一列,如果沒有指定時。我可以添加一個新的列「id」來設置主鍵(或唯一鍵)。但我不知道該怎麼做。

非常感謝您的幫助

回答

2

的映射是不正確的:@ManyToOne你的情況,意味着你必須有許多段一個組件:

@ManyToOne 
private Component component; 

根據你的描述,你需要一個@ManyToMany關係:

@ManyToMany 
private List<Component> components;