Spring Data Mongo - проблема attribute.andOperator, если поле является необязательным - PullRequest
0 голосов
/ 12 мая 2019

Я использую Spring Data Mongo и его Criteria операции. В этом случае я написал условие критерия, которое работает нормально. Но как-то мне нужно установить "", если firstName пустое или пустое и т. Д. Для других полей. Если я не укажу "", тогда он принимает значение null, что приводит к разным результатам.

Есть ли способ, если мы сможем эффективно изменить приведенное ниже условие?

Criteria criteria = new Criteria();

criteria.andOperator(
StringUtils.isNotBlank(firstName) ? Criteria.where("firstName").is(firstName.toUpperCase()) : Criteria.where(""),
StringUtils.isNotBlank(middleName) ? Criteria.where("middleName").is(middleName.toUpperCase()): Criteria.where(""),
StringUtils.isNotBlank(lastName) ? Criteria.where("lastName").is(lastName) : Criteria.where(""), 
StringUtils.isNotBlank(emailId) ? Criteria.where("departments.emailId").is(emailId) : Criteria.where(""),
StringUtils.isNotBlank(isActive)? Criteria.where("departments.defaultSw").is(isActive.toUpperCase()) : Criteria.where(""),
StringUtils.isNotBlank(codeStyle) ? Criteria.where("departments.codeStyle").is(codeStyle): Criteria.where(""));
...