我有简单的4个结构表:
Table a - columns: id(generated), x
Table b - columns: id(generated), a_id(fk to a), y
Table c - columns: id(generated), a_id(fk to a), z
Table d - columns: id(generated), b_id(fk to b), c_id(fk to c), w
关系如下:
a->b one-to-many unidirectional;
a->c one-to-many unidirectional;
b->d one-to-many unidirectional;
c->d one-to-many unidirectional;
hibernate在持久化时执行不正确的插入顺序:
应为a,b,c,d
执行:a,b,d并且在没有生成c_id
的情况下失败如何执行正确的订单?
由于
答案 0 :(得分:0)
你可以在c之后强制执行flush语句让hibernate将它发送到db。也就是说,创建并填充a,b,c然后刷新。然后创建d。