Olá!
Estou implementando um sistema com JSF e JPA onde preciso ler tabelas de uma base de dados do SQL Server 2008. O problema é que não consigo ler as tabelas que têm espaços e acentos nos nomes de colunas; retorna um “Incorrect syntax…”. É um banco em produção alimentado por outra ferramenta, então não dá para alterar isso. Abaixo o código que implementei para fazer a consulta:
public List<T> findOrderBy(List<String> orderByList) {
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
CriteriaQuery<T> cq = cb.createQuery(entityClass);
Root<T> root = cq.from(entityClass);
cq.select(root);
if (orderByList != null) {
cq.orderBy(cb.asc(root.get(orderByList.get(0))));
}
return getEntityManager().createQuery(cq).getResultList();
}
Com esse mesmo código acima consigo ler as tabelas que não têm espaços e acentos nos nomes das colunas.
Se fizesse manualmente com PreparedStatement adicionaria "Nome da Coluna" e conseguiria, mas são inúmeras colunas, em inúmeras tabelas; realmente preciso do framework para isso. Alguém sabe como fazer isso com JPA?
Agradeço.