Tabela com Nomes Reservados para Colunas - Spring Data JPA [RESOLVIDO]

2 respostas
Arkimedes

Galera,

Estou tendo um problema ao acessar uma tabela com Spring Data JPA. Essa tabela (base Oracle), infelizmente, possui campos com nomes de palavras reservadas pelo Oracle. Não há possibilidade de modificação da tabela, pois o impacto é muito grande. Estou com a missão de criar um componente novo para acessá-la, porém sem sucesso por conta desse empecilho.
  Alguém tem alguma sugestão para resolver isso usando Spring Data JPA?

Já tentei as seguintes:

@Query("SELECT m FROM MinhaTabela m")
	public List<MinhaTabela> buscar();
@Query("SELECT m.id, m.start, m.end FROM MinhaTabela m")
	public List<MinhaTabela> buscar();
@Query("SELECT m.'id', m.'start', m.'end' FROM MinhaTabela m")
	public List<MinhaTabela> buscar();
@Query("SELECT m.\"id\", m.\"start\", m.\"end" FROM MinhaTabela m")
	public List<MinhaTabela> buscar();

Todas sem sucesso.
Campos reservados: id, start, end

2 Respostas

pmlm

Já experimentaste com o acento grave `

Arkimedes

pmlm, também não funciona utilizando o acento grave.

A solução é utilizar a query nativa do banco e dessa forma usando as aspas duplas:

@Query( value="SELECT B.\"id\", B.\"start\", B.\"end\" FROM TABELA B",  nativeQuery=true )
       public List<MinhaTabela> buscarTodos();
Criado 25 de junho de 2015
Ultima resposta 2 de jul. de 2015
Respostas 2
Participantes 2