Mixing insertable and non insertable columns in a property is not allowed

表 customer(company_code varchar(10),customer_id varchar(10));

其主键是company_code 和customer_id 复合主键

 

表 Order(company_code,order_id,customer_id)

其中company_code 和order_id 是复合主键,company_code 和customer_id 引用cusotmer

 

我用的是 hibernate3 的annotations作为映射的,由myeclipse平台插件生成

但是在插入order时,会发现hibernate生成的insert sql中没有customer_id,因此customer_id的值总是空值,尽管你的PO Order中有值。

 

 

@ManyToOne(fetch=FetchType.LAZY)

        @JoinColumns( { 

        @JoinColumn(name="COMPANY_CODE", referencedColumnName="COMPANY_CODE", nullable=false, insertable=false, updatable=false), 

        @JoinColumn(name="CUSTOMER_ID", referencedColumnName="CUST_CODE", nullable=false, insertable=false, updatable=false) } )

 

后来我将以上的insertable改成true

 

出现:Mixing insertable and non insertable columns in a property is not allowed

 

目前解决办法是在Order中再添加一个property:customerId

private String customerId;

 

@Column(name="CUSTOMER_ID", length=10)

public String getCustomerId() {

return customerId;

}

 

public void setCustomerId(String customerId){

this.customerId=customerId;

}

 

insertabel还是复原

 

这样能解决问题,但不是好的方式。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值