以下のエンティティがあります。
Order{
@Id
private Long id;
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(name="order_id_fk", updatable = false)
private List<OrderRelease> orderReleases;
}
私のマネージャーコードは次のようになります。create メソッドには @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
) REFERENCES orders
( id
))
私はトランザクション管理に春を使用しています。私はjpaと休止状態をormとして持っています。