我有一个关于Hibernate持久化实体关系的问题。 假设我有一个实体A,它与实体B和实体C都有关系。 我创建了一个A实例,并用B和C的新实例填充它。当我持久化A时,我需要先持久化C再持久化B。有没有什么办法可以做到这一点?
我有一个关于Hibernate持久化实体关系的问题。 假设我有一个实体A,它与实体B和实体C都有关系。 我创建了一个A实例,并用B和C的新实例填充它。当我持久化A时,我需要先持久化C再持久化B。有没有什么办法可以做到这一点?
不,你不能控制顺序。
唯一能做的就是在建立A-C关系后调用会话刷新,然后创建A-B关系。刷新将强制Hibernate将新数据推送到数据库,但不会提交事务。
刷新后,根据数据库配置,数据可能对其他事务可见或不可见(例如,在mysql上,有4种事务模式:http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html)。