3
respostas

Consulta com mais de uma categoria

Nesta aula foi mostrado como criar uma consulta utilizando JPQL para trazer um produto tendo como critério o nome, a categoria e a loja, estou tentando fazer um exercício semelhante, porém ao invés de indicar uma categoria só, quero indicar uma List de categorias. Quero conseguir pesquisar um produto que dentro de sua lista de categorias tenha alguma categoria igual a uma das categorias indicadas na lista de parâmetro de categorias. É como se ao invés de selecionar uma única categoria como critério de consulta, eu conseguisse marcar várias categorias. Como proceder com isso em JPQL?

3 respostas

Fala ai José, tranquilo ?

Cara você pode fazer algo parecido com isso :

"select item from Item item where item.name IN :names"

Ai no seu setParameter é só substituir a chave names pela lista

Matheus, jóia. Deu certo aqui. Muito bom. Agora estava pensando o seguinte, quero realizar uma consulta em JPQL com mais de um critério porém o usuário pode omitir ele se quiser. Acredito que seja uma query dinâmica. Como conciliar isso em um repositório que herda da JPARepository? Existe alguma forma de usar Criteria dentro da interface de repositório que herda a JPARepository?

Para exemplificar tenho a seguinte classe Entity:

Pessoa Nome: String Endereço: String

Quero ter a possibilidade de pesquisar por nome e por endereço, porém se quiser omitir qualquer um dos campos também posso.

Estou falando de uma aplicação spring rest.

Forte abraço.

Acho que o mais próximo que já vi falando sobre o que solicitou é isso : https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

Mas não é tão trivial assim.