我目前在无状态会话中执行事务时遇到问题。
在服务层上,我使用@Transactional
注释定义了事务(这是必需的,因为方法需要在一个事务中)。
在方法内部,我创建了新的实体Car
。
但是我也必须在底层方法中像这样在无状态会话中创建自定义事务(为性能而完成)
StatelessSession session = getSessionFactory().openStatelessSession();
Transaction transaction = session.beginTransaction()
// create and setup CarRequirements entity
transaction.commit;
问题是实体
CarRequirements
具有到实体Car
的外键。因此,当我尝试提交底层事务时,会发生异常,因为显然Car
实体尚未提交到数据库。有没有一种方法可以推迟底层交易的提交或强制
Car
实体的提交? 最佳答案
您可以定义CarRequirements和Car(级联)之间的关系
或者您必须先保存汽车然后保存CareRequirements