[RESOLVIDO] Hibernate - Problema com script gerado

2 respostas
von.juliano

Oi pessoal, tenho que fazer um update meio complicado com o Hibernate, que estou fazendo com HQL:

"update FaixaHorario fh set fh.tipo.id = :tipoId, fh.feriado = :feriado, " "fh.qtdAtendente = :qtdAtendente, fh.horarioInicial = :inicial, " "fh.horarioFinal = :final, fh.intervaloTempo = :intervalo " "where fh.parametro.posto.id in (select p.id from Posto p where p.ar.id = :arId)"Depois seto os parâmetros da forma apropriada. O script gerado é o seguinte:

update TB_PTA_PRAMTZ_FAIXA_HORARIO, set CD_TIPO_FAIXA=?, IN_FERIADO=?, NU_ATENDENTE=?, HR_INICIO_ATEND=?, HR_FINAL_ATEND=?, NU_INTEVALO_TEMPO=? where CD_POSTO_ATENDIMENTO in ( select posto2_.CD_POSTO_ATENDIMENTO from TB_PTA_POSTO_ATENDIMENTO posto2_ where posto2_.CD_AR=? )Só aí já vi 2 erros. Primeiro, ele colocou uma vírgula após o nome da tabela, o que gera um erro “ORA-00971: missing SET keyword”. Se jogar o script no oracle e remover a vírgula, ele indica que a coluna CD_POSTO_ATENDIMENTO não existe, e não existe mesmo, deveria ter uma referência ao posto, como é no subselect.

Alguém tem algum idéia do que pode ser feito para resolver esses problemas? Obrigado! :thumbup:

2 Respostas

von.juliano

Consegui resolver alterando a forma de referenciar os objetos no where da query:

Mesmo assim queria saber porque o Hibernate enfiou aquela virgula onde não devia :?

javax.skol

von.juliano:
Consegui resolver alterando a forma de referenciar os objetos no where da query:

Mesmo assim queria saber porque o Hibernate enfiou aquela virgula onde não devia :?

Estou com o mesmo problema só que no meu caso, o problema está no campo que será setado o valor e não na condição…
Ex.:

update ClasseA set classeB.indice = :valorIndice WHERE condicao = :valorCondicao

alguma ideia ???

Criado 31 de julho de 2009
Ultima resposta 2 de dez. de 2009
Respostas 2
Participantes 2