无法将第二个OR添加到条件

时间:2019-08-11 08:06:33

标签: java mongodb

我正在尝试在我的条件中添加第二个OR。 我遇到一个错误 Due to limitations of the com.mongodb.BasicDBObject, you can't add a second 'null' criteria

当我调试它时,我看到第一个OR将一个以null为键的值添加到Criteria的HashMap中。 尝试添加第二个密钥时,它会发现null键存在,因此会引发错误。

    if (par1 != null) {
        query.addCriteria(
                new Criteria().orOperator(
                        Criteria.where(Book.SOME_FIELD + "." + BookDetail.CATEGORY_FIELD).is(par1),
                        Criteria.where(Book.OTHER_FIELD + "." + BookDetail.CATEGORY_FIELD).is(par1)
                )

        );

    }

    if (par2 != null) {

        query.addCriteria(
                new Criteria().orOperator(
                        Criteria.where(Book.SOME_FIELD + "." + BookDetail.TYPE_FIELD).is(par2),
                        Criteria.where(Book.OTHER_FIELD + "." + BookDetail.TYPE_FIELD).is(par2)
                )

        );
    }

我想检查具有相应字段的非null参数。

如果我仅发送1个参数,则它正常工作。 问题是当我同时发送2个参数时。

谢谢。

0 个答案:

没有答案