Estou numa equipe de programadores onde a maioria é desenvolvedor Delphi. E eles decidiram que seria melhor seguir e transcrever os padrões de programação e funções que existem hoje nas aplicações Delphi da empresa para Java.
Aplicação que está sendo desenvolvida é um Web Service REST API com Spring Boot, com Spring Data JPA e MySQL. Estava sendo utilizado padrões para comunicação com o banco de dados, com JPARepository, PagingAndSortingRepository e para situações de Querys dinâmicas CriteriaBuilder, Predicate, seguindo a ideia dos exemplos demonstrados nos links: (JpaPagination
Spring Data Jpa Query
Porém a maioria dos programadores, decidiram que seria melhor usar o padrão da empresa das Aplicações Delphi, que seria montar uma String concatenando os parâmetros seguindo o exemplo simples a seguir:
String sql = “SELECT t.a, t.b, t.c FROM table t " +
“WHERE t.a LIKE '%”+parametroA+”%’"
"AND t.b = "+parametroB
execSQL(sql);
Mesmo alertando sobre os riscos dos SQLInjections, eles acham melhor criar uma função desta maneira, tratando os riscos dos SQLInjections, do que usar parâmetros nas Querys. Pois acham que o JPA vai limitar a aplicação, como exemplo utilizar subquerys. Não conseguir montar uma query mais robusta, apenas concatenando novos ‘ANDs’ a query principal, entre outras situações.
Eu gostaria de uma ajuda para construir está função, não encontrei nenhum exemplo que me ajudasse a fazer da maneira que eles pediram, tratando os perigos do SQLInjection, e outros problemas que desconheço que possam surgir, e ninguém da equipe tem conhecimento em Java e Spring Boot, então eu fiquei responsável por isso, estou sem ideias de como resolver está situação.
Desde já Agradeço, fico a disposição.