在 JPA/休眠中正确使用 flush()
我正在收集有关 flush() 方法的信息,但我不太清楚何时使用它以及如何正确使用它。从我所读到的内容来看,我的理解是持久性上下文的内容将与数据库同步,即发出未完成的语句或刷新实体数据。
现在,我遵循了两个实体和(在一对一关系中,但不是由JPA强制执行或建模)的场景。 具有手动设置的复合PK,并且还具有 自动生成的IDENTITY字段 。这应该作为 外键写入实体。我正在储蓄并在一笔交易中。问题在于,自动生成的值在事务中不可用,除非我在调用 .(如果我有一个自动生成的IDENTITY PK,那么该值将直接在实体中更新,但这里的情况并非如此。A
B
A
recordId
recordId
B
A
A
B
A.recordId
em.flush()
em.persist()
A
em.flush()
在事务中使用它时会造成任何伤害吗?