Usando uma instrução preparada e uma ligação de variável Order By in Java com o driver JDBC

estou a usar

jdbcTemplate para fazer conexões JDBC com um banco de dados mySQLpreparou declarações para me proteger tanto quanto possível de ataques de injeção de SQLna necessidade de aceitar pedidos do usuário para classificar os dados em qualquer uma de uma dúzia de colunas diferentes

a seguinte declaração

jdbcTemplate.query("SELECT * FROM TABLE1 ORDER BY ? ?", colName, sortOrder);

É claro que isso não funciona, porque as ligações de variáveis ​​não devem especificar nomes de colunas apenas valores de parâmetros para expressões na consulta.

Então ... como as pessoas estão resolvendo esse problema? Apenas fazer o tipo no código Java parece ser uma solução fácil, mas já que estou obtendo uma string variável para a coluna classificar, e uma variável me informando a ordem de classificação .... é um número horrível de condições de comparação para tampa. Isto parece que deveria ser um problema comum com um padrão comum para resolvê-lo ...

questionAnswers(3)

yourAnswerToTheQuestion