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,