2016-03-19 110 views
1

我在建立OneToOne兩個類別SkuImplSkuAvailability之間的關係。下面是對代碼org.hibernate.MappingException:OneToOne Mapping的實體映射中的重複列

SkuImpl.java

@Entity 
public class SkuImpl implements Sku { 
    @OneToOne(targetEntity=SkuAvailabilityImpl.class) 
    protected SkuAvailability totalSku; 
    //setter and getters 
} 

SkuAvailabilityImpl.java

@Entity 
public class SkuAvailabilityImpl implements SkuAvailability{ 
    @OneToOne(optional=true,targetEntity=SkuImpl.class,cascade=CascadeType.ALL) 
    @JoinColumn(name="SKU_ID") 
    protected Sku sku; 
    //setter and getters 
} 

當我嘗試應用程序部署到GlassFish中它沒有部署,得到一個異常說

Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: 
SkuAvailabilityImpl column: SKU_ID 
(should be mapped with insert="false" update="false") 

如何解決這個例外?

回答

0

試着寫@JoinColumn這樣的:

@OneToOne(optional=true,targetEntity=SkuImpl.class,cascade=CascadeType.ALL) 
@JoinColumn(name="SKU_ID",referencedColumnName="someNameOfColumnId") 
protected Sku sku; 

referencedColumnName是列ID在SkuImpl類。

在下面的代碼是不必要romve它:

@OneToOne(targetEntity=SkuAvailabilityImpl.class) 
    protected SkuAvailability totalSku; 
+0

我有兩張表對這些類在「SkuAvailability」表我已經FK列SKU_ID和我改變了代碼'名稱=「SKU_ID」,referencedColumnName =」 SKU_ID「',顯示相同的錯誤。 –

+0

我改成了這個'name =「SKU_AVAILABILITY_ID」,referencedColumnName =「SKU_ID」'現在它的工作和部署到玻璃魚謝謝你 –

相關問題