Update com dois where

5 respostas
cadocado

Olá,

Ao executar o código sessao.update(objeto), o Hibernate executa a query update objeto o set … where o.id = ?. Queria saber se tem como adicionar outro where sem utilizar HQL, uma vez que o objeto possui muitos atributos e a string HQL ficaria imensa.

Até mais. :slight_smile:

5 Respostas

L

Depende…a princípio o hibernate vai fazer update na tabela pegando a chave primária dela para localizar o registro… se a tabela tiver mais de uma chave primária o hibernate também faz automático , é só dar um update no obj como vc fez que ele acha

L

E qual a razão de outro where… se o objeto do update é só um?

cadocado

Obrigado pela prontidão. O problema é que, neste caso, a outra coluna é uma chave estrangeira, não primária.

UPDATE
Respondendo sua segunda questão: meu sistema envolve login e senha. Quero assegurar que o usuário que atualiza o objeto seja a dona dele. Exemplo:

L

hum… bom…pelo que sei …ou faz em HQL ou monta um SQL e lança…modificar um update…não sei não

cadocado

É, aparentemente não tem como colocar duas condições de restrição mesmo. Como não quero usar HQL devido à quantidade de atributos do objeto, irei recuperá-lo, comparar com o outro valor e depois atualizar.

Obrigado!

Criado 1 de dezembro de 2010
Ultima resposta 2 de dez. de 2010
Respostas 5
Participantes 2