2014-03-04 64 views
2

我有很多映射實體,並且它們都從抽象類BaseEntityImpl擴展而來。覆蓋@JoinColumn可爲空值

在這個類中,我有1級屬性的公司,註釋是這樣的:

@ManyToOne(fetch=FetchType.EAGER) 
@JoinColumn(name = "id_company", nullable = false) 
public Company getCompany() { 
    return company; 
} 

僅在子類中(Company要準確),我想這個屬性是NULLEABLE。

但壓倒一切的setter

@ManyToOne(fetch=FetchType.EAGER) 
@JoinColumn(name = "id_company", nullable = true) 
@Override 
public Company getCompany() { 
    return company; 
} 

使我這個錯誤:

造成的:org.hibernate.MappingException:複製公司在ar.com.test.entity發現的屬性映射。公司

有什麼辦法,除了不擴展這個類,並明確定義公司類中的所有屬性/ getters/setters來實現這個?

非常感謝!

回答

0

您是否試過在@AssociationOverride

@Entity 
@AssociationOverride(name="company", 
        [email protected](name="id_company", nullable=true)) 
public class Company extends BaseEntityImpl { 
    .... 
} 
+0

謝謝@mtpettyp,它像一個魅力工作(我一直想這麼說!!)。 – German