Migrando hibernate 3 para 4

6 respostas
robinsonbsilva

Boa tarde,

Estou migrando do hibernate 3 para a versão 4, e algumas instruções SQL estão reclamando:

try {
            // USING HIBER
            Query query = hiberSession.createQuery(HQL);

            // Lock de Imagem
            if (poDataHoraLock != null)
                query.setParameter("dataHora", poDataHoraLock.toTimestamp(), Hibernate.TIMESTAMP);
            else
                query.setParameter("dataHora", null, Hibernate.TIMESTAMP);

            query.setParameter("keyLock", pStKeyLock, Hibernate.STRING);
            query.setParameter("id", (Long) poIdSolicitacao.getValue());

            query.executeUpdate();
            hiberSession.flush();

        }
        catch (HibernateException e) {
            throw new DAOException(e);
        }

Neste caso, o erro a seguir é apresentado:

STRING/TIMESTAMP cannot be resolved or is not a field

Aparentemente essas constantes não existem mais na nova versão, alguém poderia me dizer como solucionar?

Desde já agradeço.

6 Respostas

Rodrigo_Sasaki

Eu já tive problemas tentando mudar para o Hibernate 4.

E os problemas eram desnecessários, iria migrar só porque o AS tinha como default o Hibernate 4.

No final foi mais fácil configurar o AS para usar o hibernate antigo do que deixar com a nova versão do hibernate.

Você realmente precisa migrar ?

robinsonbsilva

Sim, a aplicação parou na versão 3.0

tmvolpato

na versão antiga do hibernate você está usando ehcache?

robinsonbsilva

Sim

tmvolpato

robinsonbsilva:
Sim

falo isso pq eu nao consegui implementar ehcache no hibernate 4
e algumas coisas foram mudadas para poder implementa
nada de demais…mas msm assim não funfo

de uma olhada nisso antes de mudar.

Acho legal atualizar versões mas as vezes precisa ver se compensa o retrabalho que vc vai ter

robinsonbsilva

Senhores, de acordo com o docs

http://docs.jboss.org/hibernate/core/4.1/javadocs/

setParameter(int position, Object val, Type type)
          Bind a value to a JDBC-style query parameter.

o parametro type agora está em org.hiberntate.type.EXEMPLO.instance

Criado 11 de setembro de 2012
Ultima resposta 11 de set. de 2012
Respostas 6
Participantes 3