Pessoal existe alguma forma de alterar com HQL ao invés de atualizar o objeto?
Tipo, queria apenas alterar um campo de minha tabela ao invés de atualizar o objeto completo.
Alterar com HQL
7 Respostas
Dá sim:
ex:
String hql = "update Cliente set nome= :novoNome where nome = :nome";
Query query = session.createQuery(hql);
query.set.....
query.executeUpdate();
Obrigado ignacio83.
Vou tentar aki e qq coisa posto novamente.
=D
ignacio83,
Só não entendi o fato de se utilizar o where nome = :nome após a clausula SET isso ta correto?
Pode ser qualquer condição que você deverá passar como parâmetro… 
Eu quis dizer do parâmetro se duplicar: SET nome= :novoNome WHERE nome = :nome.
Ainda existe um problema:
Query select = session.createQuery("UPDATE Login l SET l.loginOk = :loginOk WHERE l.loginOk = :loginOk");
org.hibernate.QueryException: Not all named parameters have been set: [loginOk]
[update Login l set l.loginOk = :loginOk]
Como nunca trabalhaei com esta clausula estou tendo dificuldades.
Grato!
Bem, esse problema existe porque você não setou corretamente os valores de :loginOk
Acredito que faltou um trecho de código mais ou menos assim:
select.setParameter("loginOk", valorQueLoginOkDeveReceber)
[]'s
JL
Obrigado Mero_Aprendiz, realmente funcionou. Não me passou na minha cabeça que estava faltando o setParameter();;
haha
=D
Obrigado!