Я пытаюсь написать запрос, который выполняет поиск по нескольким критериям.
Мой текущий запрос JPA:
@Query("SELECT c FROM Client c " +
"INNER JOIN c.entite e " +
"WHERE e.numeroLicence in (:numerosLicence) " +
"AND (UPPER(c.nom) LIKE CONCAT('%',UPPER(:nom),'%') " +
"AND (c.prenom IS NOT NULL AND UPPER(c.prenom) LIKE CONCAT('%',UPPER(:prenom),'%')) " +
"AND (c.dateCreation IS NOT NULL AND c.dateCreation > :dateCreation) " +
"AND (c.dateCreation IS NOT NULL AND c.dateModification > :dateModification) " +
"AND (c.dateCreation IS NOT NULL AND c.dateSuppression > :dateSuppression)) ")
Page<Client> recherche(@Param("numerosLicence") ArrayList numerosLicence,
@Param("nom") String nom,
@Param("prenom") String prenom,
@Param("dateCreation") ZonedDateTime dateCreation,
@Param("dateModification") ZonedDateTime dateModification,
@Param("dateSuppression") ZonedDateTime dateSuppression,
Pageable pageable);
Проблема заключается в том, что он автоматически исключает строки, в которых находится столбецсодержит NULL.
Мне нужно будет сделать выбор только для столбцов с данными, он не будет пытаться выполнить предложение, если значение поля равно NULL
Например, если у меня естьстрока, чей столбец firstname
равен NULL, тогда эта строка автоматически исключается из результата, тогда как я бы не хотел проверять этот столбец, если он равен NULL
У вас есть идея?Я ищу решение, чтобы избежать создания максимально возможного количества комбинаций