1

我有 2 个实体需要保存在两个不同的数据库中:

1) MyClassMetaData - 在春季通过 jpa+hibernate 持久化在 mysql (entityManager)

2) MyClassRawData - 通过 spring 数据 (mongoTemplate) 在 mongoDB 上持久化

两个实体之间存在一对一关系:只有一个实体在没有另一个实体的情况下被持久化是没有意义的。每次保存都会有元数据和原始数据。

我保存这两个实体的服务如下所示

@Transactional
public void saveMyClass(metadata, rawdata){

 // Do Something here
 this.entityManager.persist(metadata);
 this.mongoTemplate.save(rawData);

}

我的问题是:我如何确保如果此保存方法发生错误 - 两个类都会发生回滚?

谢谢

4

1 回答 1

0

这可能是您想要实现的目标: http: //static.springsource.org/spring-data/mongodb/docs/current/reference/html/mongo.cross.store.html 但是它将两个实体严格联系在一起。

于 2013-08-28T19:59:14.957 回答