当前位置: 首页 > 知识库问答 >
问题:

org.SpringFramework.Beans.Factory.UnsatisfiedDependencyException Springboot

彭烨熠
2023-03-14

已与目标VM断开连接,地址:“javadeBug”,传输:“共享内存”

进程已完成,退出代码为0

PessoAcontroller:

@RestController
@RequiredArgsConstructor
@RequestMapping("/pessoa")
public class PessoaController implements ListagemController<PessoaDto> {

    @Autowired
    private RepositorioPessoa repositorioPessoa;

    @Override
    public List<PessoaDto> listarSelects(String filtro) {
        return repositorioPessoa.listarPessoas(filtro);
    }
}
@Repository
public interface RepositorioPessoa extends RepositorioBase<Pessoa>, CustomRepositorioPessoa {
}
public interface CustomRepositorioPessoa {

    List<PessoaDto> listarPessoas(String filtro);
}
@Repository
public class RespositorioPessoaImpl implements CustomRepositorioPessoa {

    @PersistenceContext
    private EntityManager entityManager;

    @Override
    public List<PessoaDto> listarPessoas(String filtro) {

        var builder = this.entityManager.getCriteriaBuilder();
        var criteria = builder.createQuery(PessoaDto.class);
        var root = criteria.from(Pessoa.class);

        var selection = builder.construct(PessoaDto.class,
                root.get("id"),
                root.get("nome"),
                root.get("matricula"));

        criteria.select(selection);

        Specification specs = (root1, criteriaQuery, criteriaBuilder) -> {
            List<Predicate> filtros = new ArrayList<>();
            if(filtro != null && !filtro.isEmpty()) {
                criteriaBuilder.or(
                        criteriaBuilder.like(root1.get("nome"), "%" + filtro + "%"),
                        criteriaBuilder.like(root1.get("matricula"), "%" + filtro + "%")
                );
            }
            return criteriaBuilder.and(filtros.toArray(new Predicate[0]));
        };

        criteria.where(specs.toPredicate(root, criteria, builder));

        TypedQuery<PessoaDto> query = this.entityManager.createQuery(criteria);

        return query.getResultList();

    }
}

共有1个答案

柳景胜
2023-03-14

您的自定义存储库名称必须为

CustomRepositorioPessoaImpl

这是Spring数据所要求的。

这是interace名称和后缀Impl

 类似资料:

相关问答

相关文章

相关阅读