2016-03-24 39 views
2

hazırda JPA OneToOne ilgili olarak db masaya ekliyor Product ->SkuImpl ->SkuAvailabilityImpl kayıtları SkuAvailability tabloyaEkstra sütun ben OneToOne İlişkisi Üzerine Üç varlık sınıf var

içine aynı anda sku tabloya ekleme yüzden ben sadece bir ürün eklemeniz gerekir

SkuImpl.java

@Entity 
public class SkuImpl implements Sku { 
    @OneToOne(targetEntity=SkuAvailabilityImpl.class, cascade={cascadeType.ALL},fetch=FetchType.EAGER) 
    @Cache(usage=CacheConcurrencyStrategy.READ_WRITE) 
    @LazyCollection(LazyCollectionOption.FALSE) 
    protected SkuAvailability totalSku; 
    //setter and getters 
} 

SkuAvailabilityImpl.java

Tüm kayıtlar ince takmadan, ancak buradaki sorun, extra sütun gibi adıyla totalSku_SKU_AVAILABILITY_ID Yukarıdaki tablo üzerinde ekliyor is

SKU_ID | NAME | QUANTITY | SKU_AVAILABILITY_ID 
--------+--------+----------+-------------------- 
     |  |   | 
@Entity 
public class SkuAvailabilityImpl implements SkuAvailability{ 
    @OneToOne(optional=true,targetEntity=SkuImpl.class) 
    @Cascade(value={org.hibernate.annotations.CascadeType.ALL}) 
    @JoinColumn(name="SKU_ID", referencedColumnName='SKU_ID',insertable=false,updatable=false) 
    @Cache(usage=CacheConcurrencyStrategy.READ_WRITE) 
    protected Sku sku; 
    //setter and getters 
} 

SKU veritabanı tablosu aşağıda

SKU_ID | NAME | QUANTITY | SKU_AVAILABILITY_ID |totalSku_SKU_AVAILABILITY_ID 
--------+--------+----------+-------------------- 
101  |product1| 200  |     | 503 

Bu sütunu silmeyi denedim, ancak tekrar oluşturuyor. Bu sütunun neden eklendiğini anlamıyorum, kimse bunu nasıl durdurabilirim?

+0

"SkuImpl.totalSku" alanı için sütun adını tanımlamadınız, böylece kendi sütun adını tanımlar. @JoinColumn –

+0

@Neil Stockton, çok teşekkür ederim 'JoinColumn' sorunum çözüldü, –

+0

bunu duyduğuma sevindim. cevap olarak eklediniz böylece kabul edebilirsiniz –

cevap

0

"SkuImpl.totalSku" alanı için sütun adını tanımlamamışsınızdır, böylece kendi sütun adını JPA spec tanımlarına göre tanımlar. Veritabanınızdaki adla birlikte @JoinColumn'u ekleyin.

İlgili konular