2016-12-21 7 views
0

MongoActionのいくつかの条件に基づいて異なるWriteConcern値を設定する方法はありますか? たとえば、MongoActionに「ABD」のような値が含まれていれば、WriteConcernは必要ありません。また、「支払い」が含まれている場合は、WriteConcernが安全である必要があります。 これを実現する可能性のあるケースは何ですか?いくつかのMongoActionプロパティに基づいて異なる条件に異なるWriteConcernを設定するにはどうすればいいですか?

答えて

1

上記WriteConcernResolverを実装し、次のように解決方法をオーバーライド行うことができます。

class MyAppWriteConcernResolver implements WriteConcernResolver { 

    @Override 
    public WriteConcern resolve(MongoAction action) { 

    if (action.getEntityClass().getSimpleName().contains("ADB")) { 
     return WriteConcern.NONE; 
    } else if (action.getEntityClass().getSimpleName().contains("PAYMENT")) { 
     return WriteConcern.SAFE; 
    } 

    return action.getDefaultWriteConcern(); 
    } 
} 

引数、MongoActionに渡され、あなたが使用するWriteConcern値を決定するために使用するものです。およびコンテキスト情報のいくつかの他の部分:MongoActionが列挙(REMOVEUPDATE´, ´INSERTINSERT_LISTSAVEMongoActionOperation)のように書き込まれるコレクション名、POJO、変換DBObject、ならびに操作のjava.lang.Classを含有します。

+1

いいです!私は、このインスタンスが 'MongoTemplate'で設定される必要があることに言及することができます。 –

関連する問題