私の問題は次のとおりです。文書をMongoに保存する前に、低レベルの一意性検査を行う必要があります。一意性検査が失敗した場合、文書の保存を防ぎたい。春データMongo:BeforeSaveEventでの保存操作を防止する
私はAbstractMongoEventListener.onBeforeSave()
を利用することに決めました。
私は次のようなものを考えていた:
class MyEventListener extends AbstractMongoEventListener<User> {
@Autowired
UserEmailRepository userEmailRepository;
@Override
public void onBeforeSave(BeforeSaveEvent<User> event) {
User user = event.getSource();
try {
UserEmail userEmail = new UserEmail(user.getEmail());
userEmailRepository.insert(userEmail);
} catch (DuplicateKeyException ex) {
//prevent from saving User document
}
}
}
が、私は処理するために、保存操作の防止の実装に問題を抱えています。
- ブロックcatchブロックでの保存操作(それだ場合に可能)、より高いレベル
- キャッチ例外へ
- 移動のtry/catch:
私は自分のタスクを達成するために3つの可能性を見ることができますこのリスナーでは、その後、AbstractMongoEventListener.onAfterSave()内の重複したレコードを削除してください。
このタスクを実行する方法を教えてください。
すでに3つのオプションがありますか?なぜもっと欲しいの? –
最初は可能かどうかわかりませんが、次の2つは最初のものが不可能な場合です – nibsa