Problema de JSF com HIBERNATE

Blz Galera?

Seguinte…

minha aplicação estava funcionado normalmente… houve umas mudanças no banco, daí alterei o mapeamento XML para ficar de acordo e agora tá dando pau!

Ocorre o seguinte erro quando eu tento incluir um Registro: “could not fetch initial value for increment generator”
“java.sql.SQLException: ORA-00942: a tabela ou view não existe”…

já conferi o meu mapeamento xml com o Banco e tá perfeito… exatamente igual…
Dá uma mãozinha ai…

Faz o Hibernate gerar a saída SQL para saber exatamente o que está acontecendo.

Bom dia…

Verifique se nao esta faltando nenhum GRANT o usuário.

[ ]'s

tá tudo certo véio… mas ainda tá foda…

Cara, as vezes a gente pensa que tá tudo certo, mas não está (obviamente não está tudo certo, pois se estivesse não estaríamos tendo esta conversa hehehe)… Mas então, dê uma olhada direitinho no mapeamento e dá uma olhada na dica do nandobgi… às vezes, no Oracle, quando o usuário (que você configurou para conectar na base de dados) está sem permissão (grant), ele dá a mensagem de que a tabela ou view não existe.

vou verificar galera… Valeu pela ajuda!!

Bom… Verifiquei que não há nenhum problema com as permissões… então, a solução provisória que encontrei foi fazer o serviço do Hibernate na mãozona lá no meu “Service” para gerar o código e salvar o dado no Banco até saber que Loucura foi essa… Mas me ajudaram bastante… Ai vai o código:

[code]public void inserirOuAtualizar(Object dado) {
VOPrazoConsulta vopc = (VOPrazoConsulta) dado;
if (vopc.getCodPrazoConsulta() == null) {
List l = prazoConsultaDao.recuperaTodosPrazoConsultas();
if (l.isEmpty()) {
vopc.setCodPrazoConsulta(new Long(1));
} else {
Long maxCodigo = prazoConsultaDao.getMaxCodigoPrazoConsulta();
maxCodigo++;
vopc.setCodPrazoConsulta(maxCodigo);
}
}

    prazoConsultaDao.inserirOuAtualizar(vopc);
}[/code]

valeus!!

Cara, não precisa fazer isso no código. Mostra aí como você mapeou sua classe (annotation ou xml) que talvez possamos te ajudar a encontrar onde está o erro…

Imagine só você se preocupar em escrever código pra gerar a primary key para todas as entidades do sistema? E ainda mais seguindo essa estratégia que você está fazendo de consultar todos e obter o próximo. Se isso for um sistema que você está desenvolvendo na sua empresa, a performance dele vai estar lá embaixo.

Somente para esclarecer, O sistema que fiz tem 10 casos de uso sendo que 8 estão funcionando perfeitamente certo, esses dois que estou mostrando tiveram alterações no esquema do banco (ORACLE) que inclusive já estão presentes no código abaixo, mas não funciona de jeito algum…

vamos lá então… Ai vai como está mapeado no meu “hbm.xml”

[code]<?xml version="1.0" encoding="UTF-8"?>

<class name="sacweb.prazoconsulta.vo.VOPrazoConsulta" table="LCT_MODAL_COMPRA" schema="LC">
    <id name="codPrazoConsulta" type="long" column="COD_MODAL_COMPRA" >
        <generator class="assigned" />
    </id>
    <property name="desPrazoConsulta" type="string" column="DES_MODAL_COMPRA"/>
    <property name="indLicitacao" type="string" column="IND_LICITACAO"/>
    <property name="qtdDiasConsulta" type="long" column="QTD_DIAS_CONSULTA"/>
</class>

<class name="sacweb.instituicaofinanceira.vo.VOInstituicaoFinanceira" table="PUT_BANCO" schema="PU">
    <id name="codInstituicaoFinanceira" column="COD_BANCO">
       <generator class="assigned"/>
    </id>
    <property name="desInstituicaoFinanceira" type="string" column="NOM_BANCO"/>
</class>
[/code]

Obrigado!

O generator do tipo “assigned” quer dizer que sua aplicação irá informar o valor da PK.
Acho que você mandou o HBM que estava usando após criar o tal serviço para criar a chave.

Manda o HBM que estava sendo usado quando deu o erro que originou o tópico. E também manda o stacktrace completo da Exception. :wink: