1

2 つの異なる DB に永続化する必要がある 2 つのエンティティがあります。

1) MyClassMetaData - 春に jpa+hibernate を介して mysql に永続化 (entityManager)

2) MyClassRawData - スプリング データ (mongoTemplate) を介して mongoDB に永続化

2 つのエンティティ間には 1 対 1 の関係があります。1 つのエンティティだけが他のエンティティなしで永続化されることには意味がありません。保存ごとにメタデータと生データが常に存在します。

これら2つのエンティティを保存するための私のサービスは次のようになります

@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 ただし、2 つのエンティティを厳密に結び付けます。

于 2013-08-28T19:59:14.957 に答える