TransWikia.com

JPA Speciffication - Filtrar a lista da entidade

Stack Overflow em Português Asked by Faris Saleh Ahmad on January 30, 2021

Eu tenho uma entidade "Pedido" com uma lista de tarefas (outra entidade) e preciso usar a speciffication para filtrar a entidade pedido e a lista aninhada de tarefas.

Exemplo: Selecione * Pedido onde tarrefa.finalizada = "S"

Preciso retornar uma lista de pedidos e tarefas que foram realizadas.

Meu problema é a lista aninhada, a specffication filtra o apenas a entidade Pedido e não a lista de tarefas.

Code:

`

public static Specification<UsuarioProcesso> porFinalzada(Indicador finalizada){
       return new JoinableSpecification<>() {
            @Override
            public Predicate toPredicate(Root<UsuarioProcesso> root, CriteriaQuery<?> cq, CriteriaBuilder cb) {
                Path<Indicador> path = this.joinList(root, UsuarioProcesso_.tarefas, JoinType.INNER).get(UsuarioProcessoTarefa_.finalizada);
                return cb.equal(path, finalizada);
            }
        };
    }

`

One Answer

Encontrei a solução.

Usar "root.fetch"

O fetch irá obrigar o JPA a realizar a consulta que busca as tarefas junto com a consulta que busca os pedidos, dessa forma as duas passariam pelo filtro

Answered by Faris Saleh Ahmad on January 30, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP