hibernate插入顺序

时间:2013-01-30 15:17:39

标签: java database hibernate insert

我有简单的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

的情况下失败

如何执行正确的订单?

由于

1 个答案:

答案 0 :(得分:0)

你可以在c之后强制执行flush语句让hibernate将它发送到db。也就是说,创建并填充a,b,c然后刷新。然后创建d。