1

我目前在无状态会话中执行事务时遇到问题。

在服务层上,我使用@Transactional注释定义了事务(这是必需的,因为方法需要在一个事务中)。在我创建新实体的方法内Car。但是,我还必须像这样在无状态会话中的底层方法中创建自定义事务(它是为了性能而完成的)

StatelessSession session = getSessionFactory().openStatelessSession();
Transaction transaction = session.beginTransaction()

// create and setup CarRequirements entity

transaction.commit;

问题是实体CarRequirements有实体的外键Car。因此,当我尝试提交底层事务时,会发生异常,因为显然Car实体尚未提交到数据库。

有没有办法推迟底层事务的提交或Car实体的强制提交?

4

1 回答 1

2

您可以定义 CarRequirements 和 Car(级联)之间的关系,或者您必须先保存 Car 然后保存 CareRequirements

于 2017-08-17T09:50:33.743 回答