[Hibernate] ORA-00918: coluna definida de maneira ambígua  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 518
Localização: Assis
Offline

Olá galera,

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:

ORA-00918: coluna definida de maneira ambígua

Algo que encontrei a respeito (mas sem solução ainda, aparentemente)

No meu caso não acredito se tratar de problemas de conflito de nome de colunas, o problema é ao utilizar:



Se alguém já teve esse problema e conseguiu resolver, ficaria grato pela ajuda.

Att,

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
ignacio83
Java Ninja
[Avatar]

Membro desde: 16/03/2007 10:46:06
Mensagens: 253
Localização: São Paulo
Offline

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.

André de Fontana Ignacio
[MSN]
pmlm
GUJ Master

Membro desde: 20/04/2009 12:20:07
Mensagens: 1199
Localização: Portugal
Online

Qual a query que é executada?
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 518
Localização: Assis
Offline

ignacio83 wrote: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.


Olá Ignácio, tudo bem?

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.




O curioso é que em outras consultas setFirstResult e setMaxResults funcionam.

Abraços e obrigado pelas dicas!

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 518
Localização: Assis
Offline

pmlm wrote:Qual a query que é executada?


Olá pmlm,

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.

Abraços!

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
Gabriel Galhardi
JavaBaby
[Avatar]

Membro desde: 25/05/2009 07:35:39
Mensagens: 76
Offline

ja passei por isso, no meu caso a criação do Alias nao estava ocorrendo corretamente.
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 518
Localização: Assis
Offline

Gabriel Galhardi wrote:ja passei por isso, no meu caso a criação do Alias nao estava ocorrendo corretamente.


Olá Gabriel, tudo bem?
Você conseguiu alguma alternativa, usando HQL mesmo?
Eu ainda continuo usando SQL nativa para resolver o problema.

Abraço!

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
Gabriel Galhardi
JavaBaby
[Avatar]

Membro desde: 25/05/2009 07:35:39
Mensagens: 76
Offline

pra se bem sincero não me lembro como resolvi...
já tento passa essa query sql pra hql?
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 518
Localização: Assis
Offline

Gabriel Galhardi wrote:pra se bem sincero não me lembro como resolvi...
já tento passa essa query sql pra hql?


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!

Abraços!

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
toniwickert
What is classpath?

Membro desde: 23/11/2009 11:26:51
Mensagens: 5
Offline

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;

Funciona corretamente!

Abraços!
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team