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.
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
leopoldof
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
leopoldof
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.