У меня есть функция поиска, в которой есть разные параметры, и пользователь может выбрать один или несколько параметров и игнорировать другие параметры. Я хочу использовать для этого findByFirstNameAndLastNameAndAddressAndCountry()
, чтобы, если какой-либо параметр имеет значение NULL или пустой, его можно было игнорировать, а условие And
применялось к другим параметрам.
Как игнорировать нулевые или пустые значения при использовании find () в Spring MongoRepository
comment
Дубликат stackoverflow.com/questions/11613464/
- person Jens Schauder   schedule 12.05.2021
Ответы (2)
Это может быть повторяющаяся проблема. Вы можете сделать это, используя аннотацию @Query и свой собственный запрос.
Ссылка: Как пропустить @Param в @Query, если значение null или пусто в Spring Data JPA
@Query("select foo from Foo foo where foo.bar = :bar and "
+ "(:goo is null or foo.goo = :goo)")
public List<Foo> findByBarAndOptionalGoo(
@Param("bar") Bar bar,
@Param("goo") Optional<Goo> goo);
person
Senthil
schedule
09.05.2019
Используйте опции «Запрос» и «Критерии», предоставляемые Spring для MongoDB.
Query query = new Query();
if(!obj.getFirstName.isEmpty()){
Criteria criteria1 = Criteria.where('first_name').is(obj.getFirstName);
query.add(criteria1);
}
person
Chandan Kumar
schedule
07.05.2020