#spring-boot #spring-data-jpa #hql
Вопрос:
Я получаю странную ошибку, когда я пишу запрос HQL, используя один параметр несколько раз в одном и том же запросе, он не работает, например:
Это не сработает:
SELECT Object(o) FROM Pessoa o WHERE o.situacaoEnum IN (:situacao) AND (o.razaoSocial LIKE %:query% OR o.nomeFantasia LIKE %:query% OR o.cpfCnpj = :query)
Но если делать это, то это работает идеально:
SELECT Object(o) FROM Pessoa o WHERE o.situacaoEnum IN (:situacao) AND (o.razaoSocial LIKE %:rs% OR o.nomeFantasia LIKE %:nf% OR o.cpfCnpj = :cc)
Мое хранилище
public interface PessoaRepository extends JpaRepository<Pessoa, Long> {
final String BY_QUERY = " FROM Pessoa o WHERE o.situacaoEnum IN (:situacao) AND (o.razaoSocial LIKE %:rs% OR o.nomeFantasia LIKE %:nf% OR o.cpfCnpj = :cc) ";
final String BY_SITUACAO = "FROM Pessoa o WHERE o.situacaoEnum IN (:situacao) ";
@Query(value = "SELECT Object(o)" BY_QUERY, countQuery = "SELECT count(o)" BY_QUERY)
Page<Pessoa> findByQuery(@Param("rs") String rs, @Param("nf") String nf, @Param("cc") String cc, @Param("situacao") List<SituacaoEnum> situacao, Pageable pageable);
@Query(value = "SELECT Object(o)" BY_SITUACAO, countQuery = "SELECT count(o)" BY_SITUACAO)
Page<Pessoa> findBySituacao(@Param("situacao") List<SituacaoEnum> situacao, Pageable pageable);
}