2
我有OneToOne關係三個實體類Product
- >SkuImpl
- >SkuAvailabilityImpl
我只需要添加一個產品,所以記錄同時插入sku
表到SkuAvailability
表Extra列處於休眠JPA OneToOne關係上添加db表
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
@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數據庫表
SKU_ID | NAME | QUANTITY | SKU_AVAILABILITY_ID
--------+--------+----------+--------------------
| | |
所有記錄都將很好,但這裏的問題是,一個額外的列與名稱totalSku_SKU_AVAILABILITY_ID
如添加上述見下表
SKU_ID | NAME | QUANTITY | SKU_AVAILABILITY_ID |totalSku_SKU_AVAILABILITY_ID
--------+--------+----------+--------------------
101 |product1| 200 | | 503
我嘗試刪除該列,但它正在重新創建。我不明白爲什麼這個專欄是添加任何人都可以幫助我如何阻止它?
您尚未定義字段「SkuImpl.totalSku」的列名稱,因此它定義了它自己的列名稱。 @JoinColumn –
@尼爾斯托克頓,非常感謝你@ @ JoinColumn'解決了我的問題, –
很高興聽到它。添加爲答案,以便您可以接受它 –