Update simples no Hibernate

1 resposta
N

Senhores,

Dado que possuo um Id de entidade, não uma entidade persistente, quero atualizar um atributo como um status por exemplo.

Se eu operar da seguinte forma:

entidade = session.get(Entidade.class, Id);
entidade.setStatus(novoStatus);

Eu gasto um select desnecessário.

Na documentação do hibernate ele comenta que é um gerenciador ORM e não ferramenta JDBC, bla, bla, bla.

Mas muita gente usa Hibernate para facilitar acesso ao banco, e o Hibernate disponibiliza a interface Work para acesso direto JDBC.

Usando Work minha solução seria algo como:

EntidadeWork work = new EntidadeWork(activityId);
session.doWork(work);
...
// no work
PreparedStatement pst = connection.prepareStatement(...);
pst.setString(novoStatus);
pst.setInt(Id);
pst.executeUpdate();

Porém, o uso do Work pressupõe “gambiarra”.

Alguém tem uma forma elegante de fazer isso sem usar JDBC ? Fazer um update de uma entidade dado um id e novo valor do campo sem usar JDBC, ou melhor, usando HQL!?

Abraço,

1 Resposta

Hebert_Coelho

Vc pode utilizar native/named query: http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querysql.html

Criado 16 de março de 2012
Ultima resposta 16 de mar. de 2012
Respostas 1
Participantes 2