0
這是我的問題:我必須在將文檔保存到Mongo中之前進行一些低級別唯一性檢查。如果唯一性檢查失敗,我想防止保存文檔。Spring Data 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
}
}
}
,但我在與執行保存操作處理的防止的麻煩。
我可以看到3種可能性來完成我的任務:
- 塊catch塊保存操作(如果可能的話)
- 招的try/catch上級
- 捕獲異常在這個監聽器中,然後刪除AbstractMongoEventListener.onAfterSave()中的重複記錄()
請問你們給我一些建議如何完成這個任務?
你已經有三種選擇?你爲什麼想要更多? –
我不知道如果第一個可能,第二個是不可能的 – nibsa