根据MongoAction的某些条件设置不同的WriteConcern值的可能方法是什么? 例如,我想如果MongoAction包含一些像" ABD"的值,我希望不应该有WriteConcern。如果它包含" PAYMENT",那么WriteConcern应该是安全的。 我能做到这一点的可能性是什么?
答案 0 :(得分:1)
以上可以通过实现WriteConcernResolver
并覆盖resolve方法来完成,如下所示:
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
包含要写入的集合名称,POJO的java.lang.Class
,转换后的DBObject
以及作为枚举的操作(MongoActionOperation
:{{1} },REMOVE
,UPDATE´, ´INSERT
,INSERT_LIST
)以及其他一些背景信息。