dei uma procurada aqui por esse erro e não encontrei nada a respeito, por isso rsolvi abrir um novo tópico.
Alguém já teve esse problema com a paginação de banco, usando o Hibernate e o Oracle:
O erro provavelmente não está nessas linhas, Alguma coluna de sua entidade está sendo mapeada duas vezes… Tente colocar insertable = false e updatable = false em uma delas ou remova a duplicidade, se não conseguir resolver o problema, post a sua entidade aqui.
Quanto ao mapeamento duplicado, tenho certeza de que não é esse o problema. Essa consulta já era realizada sem a paginação, sem problemas.
O problema me parece ser na SQL resultante, montada pelo Hibernate. Essa consulta, pelo que andei lendo, envolve subselects, e ele (Hibernate) por algum motivo, duplica colunas, algo assim.
O link que eu coloquei no primeiro post leva aos detalhes de um bug ainda não resolvido no Hibernate (setMaxResults causes “ORA-00918: column ambiguously defined” exception ).
Por hora resolvi o problema criando uma consulta nativa do Oracle, com a paginação utilizando ROWNUM.
sql.append("SELECT * FROM ");
sql.append("(SELECT a.*, ROWNUM rnum ");
sql.append("FROM (SELECT * FROM TABELA ");
sql.append("WHERE TABELA.CAMPO1 = ? ");
sql.append("AND TABELA.CAMPO2 = ? ");
sql.append("ORDER BY TABELA.CAMPO3) a ");
sql.append("WHERE ROWNUM <= ?) ");
sql.append("WHERE rnum > ? ");
O curioso é que em outras consultas setFirstResult e setMaxResults funcionam.
a query, modificada para não expor nomes de tabelas e colunas do sistema, é a que citei acima. Bem simples por sinal.
Como disse, em outras consultas, até mais complexas, o erro não aparece.
[quote=Gabriel Galhardi]pra se bem sincero não me lembro como resolvi…
já tento passa essa query sql pra hql? [/quote]
Então, ela estava em HQL, e eu tive que justamente passar para SQL para resolver o problema, usando o ROWNUM que citei alí acima. Em SQL nativa ela funciona bem, só com o HQL e usando setFirstResult e setMaxResults que ela dá o problema.
Bom, por hora vou deixar assim… está funcionando.
Quando encontrar algo posto aqui!
Olá pessoal, sei que o post é antigo, tive o mesmo problema e consegui resolver, encontrei a dica nesse link: http://opensource.atlassian.com/projects/hibernate/browse/HHH-951
O erro acontece quando se usa @Column minúsculo ao invés de maiúsculo, exemplo: @Column(name=“empresa”)
private long idEmpresa;
Alterando para: @Column(name=“EMPRESA”)
private long idEmpresa;