2013-02-06 102 views
6

我有以下(簡化的)的情況:org.hibernate.MappingException:使用在收集映射重複柱@JoinTable

字段爲表A:

  • ID
  • COMMONID

表AB的字段:

  • AID
  • BID COMMONID

字段爲表B:

  • ID
  • COMMONID

,並希望使用這樣的一對多實體映射它(在映射在表A上的主類中):

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = false, fetch = FetchType.LAZY) 
@JoinTable(name = "AB", 
joinColumns= { 
    @JoinColumn(name = "AID", referencedColumnName="ID"), 
    @JoinColumn(name = "COMMONID", referencedColumnName="COMMONID")}, 
inverseJoinColumns = { 
    @JoinColumn(name = "BID", referencedColumnName="ID"), 
    @JoinColumn(name = "COMMONID", referencedColumnName="COMMONID")}) 
private Set<MyClassForB> list= new HashSet<MyClassForB>(); 

建設會議上,我得到以下錯誤:

org.hibernate.MappingException: Repeated column in mapping for collection using @JoinTable list column: COMMONID 

我在做什麼錯?考慮我是Hibernate的新手。

+0

顯然你在另一個不同的映射中使用'COMMONID'。 –

回答

0

嘗試添加插入,更新和這樣

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = false, fetch = FetchType.LAZY) 
@JoinTable(name = "AB", 
joinColumns= { 
    @JoinColumn(name = "AID", referencedColumnName="ID", insertable = false, updatable = false), 
    @JoinColumn(name = "COMMONID", referencedColumnName="COMMONID", insertable = false, updatable = false)}, 
inverseJoinColumns = { 
    @JoinColumn(name = "BID", referencedColumnName="ID", insertable = false, updatable = false), 
    @JoinColumn(name = "COMMONID", referencedColumnName="COMMONID", insertable = false, updatable = false)}) 
private Set<MyClassForB> list= new HashSet<MyClassForB>(); 

但我不知道你是否將能夠更新這一套,我使用案件只讀。

相關問題