我有以下实体。
Order{
@Id
private Long id;
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="order_id_fk", updatable = false)
private List<OrderRelease> orderReleases;
}
我的经理代码看起来像这样。创建方法有@Transactional
OrderResponse response = super.create(entry);
if(orderReleases !=null){
for(OrderReleaseEntry releaseEntry: orderReleases){
releaseEntry.setOrderId(response.getData().get(0).getId());
orderReleaseManager.create(releaseEntry);
}
}
这段代码在hibernate 3.6.0.Final中运行良好..但是当我迁移到hibernate 4.2.2.Final时,这会开始抛出外键违规异常
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法添加或更新子行:外键约束失败(myntra_oms
。order_release
,CONSTRAINT FK36452816EEB04872
FOREIGN KEY( order_id_fk
)参考orders
(id
))
我使用spring进行事务管理,我将jpa和hibernate作为orm。