Mysql hibernate 4.2.2中的一对多

Mysql hibernate 4.2.2中的一对多,mysql,spring,hibernate,jpa,Mysql,Spring,Hibernate,Jpa,我有以下实体 Order{ @Id private Long id; @OneToMany(fetch=FetchType.LAZY) @JoinColumn(name="order_id_fk", updatable = false) private List<OrderRelease> orderReleases; } 这段代码在hibernate 3.6.0中运行良好。。但当我迁移到Hibernate4.2.2.Final时,这会引发外键冲突异常 com.mysql.

我有以下实体

Order{

@Id
 private Long id;

@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="order_id_fk", updatable = false)
private List<OrderRelease> orderReleases;

}
这段代码在hibernate 3.6.0中运行良好。。但当我迁移到Hibernate4.2.2.Final时,这会引发外键冲突异常

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法添加或更新子行:外键约束失败(
myntra\u oms
order\u release
,约束
FK36452816EEB04872
外键(
order\u id\u fk
)引用
orders


我使用spring进行事务管理,我使用jpa和hibernate作为orm。

向我们展示OrderRelease的代码,以及实际创建订单发布、将其添加到订单并引发异常的代码。orderReleaseManager.create()反过来调用dao.create。。dao具有entityManager.persist(实体);查看异常情况,似乎没有具有特定id的订单。您确定OrderResponse对象只包含有效的订单id吗?
OrderResponse response = super.create(entry);
if(orderReleases !=null){  
    for(OrderReleaseEntry releaseEntry: orderReleases){  
         releaseEntry.setOrderId(response.getData().get(0).getId());  
             orderReleaseManager.create(releaseEntry);
    }
}