【发布时间】:2016-03-24 07:39:52
【问题描述】:
我在 OneToOne 关系上有三个实体类 Product->SkuImpl->SkuAvailabilityImpl 我只需要添加一个产品,所以记录同时插入到 sku 表中到 SkuAvailability 表中
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
-
@Neil Stockton,非常感谢
@JoinColumn解决了我的问题, -
很高兴听到这个消息。添加为答案,以便您接受它