2016-03-19 27 views
1

İki sınıf SkuImpl ve SkuAvailability arasındaki ilişkiyi yapıyorum OneToOne. Aşağıda için kod olduğunuorg.hibernate.MappingException: OneToOne Eşlemesi için eşleme için yinelenen sütun Eşleme

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 
} 

Dediğim istisna almak, bu dağıtma değil GlassFish'in içine uygulamayı dağıtmak için denemek

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

Bu istisnalar nasıl çözülür?

cevap

0

böyle @JoinColumn yazmaya çalışın:

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

referencedColumnNameSkuImpl sınıfta sütun Kimliği.

aşağıdaki kod gereksiz romve öyle:

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

I 'SkuAvailability' tabloda bu sınıflar için iki tablo I fk sahip olan sütun SKU_ID ve kodu 'adı = "SKU_ID" değiştirilebilir, referencedColumnName =" SKU_ID ", aynı hatayı gösteriyor. –

+0

Bu adı değiştirdim: = "SKU_AVAILABILITY_ID", referColumnName = "SKU_ID" 'şimdi çalışıyor ve cambona dağıtılmış teşekkürler –

İlgili konular