Update no hibernate

Como faço para atualizar apenas uma propriedade de acordo com uma condição, por exemplo em SQL seria algo assim:

UPDATE table SET field1=value WHERE pk=pk_value;

tem como fazer algo parecido com triggers no hibernate? isso pq tenho um problema mais ou menos assim, somente um produto é destaque e então quando eu marcar a opção de destaque para o produto2 ele tem que atualizar o outro destaque para false no produtoX, daí q não to sabendo fazer isso com hibernate. Alguém manja?

Cara, não tem query pra update, o que você faz é:

Pessoa p = ( Pessoa ) session.get( Pessoa.class, id );

p.setNome( "lipe" );

Pronto, deu update apenas no nome.

hum, é que eu queria evitar isso, pq vou ter que pesquisar antes o objeto que tem a propriedade q eu quero alterar e depois mudá-la para o novo valor, fica mais lento, mas vamos fazer esse sacrifício pela OO. :slight_smile:

[quote=LIPE]Cara, não tem query pra update, o que você faz é:

Pessoa p = ( Pessoa ) session.get( Pessoa.class, id );

p.setNome( "lipe" );

Pronto, deu update apenas no nome.[/quote]

LIPE, isso realmente funciona, nãoto questionado seus conhecimentos mas tipo.
Trabalhei com hibeenate em um projeto apenas aqui, e enfretamos dificuldades por nunca termos usado e somete ter documentação como base.

Um dos problemas que verificamos(enquanto criavamos e aprendiamos) era esta questão do UPDATE, de toda maneira que criavamos o sql, nunca conseguiamos atualizar somente um determinado campo na tabela, sempre que olhavamos o processo no debug, ele levava todos os objetos e fazia update de todos, sempre tinha lá o ?, ?, ?, ? (Tomcat)

Esse codigo que postou realmente só atualiza o campo específico?

PS: não discordo, só to querendo saber por curiosidade e pela minha incompentencia em não conseguir

[quote=skill_ufmt][quote=LIPE]Cara, não tem query pra update, o que você faz é:

Pessoa p = ( Pessoa ) session.get( Pessoa.class, id );

p.setNome( "lipe" );

Pronto, deu update apenas no nome.[/quote]

LIPE, isso realmente funciona, nãoto questionado seus conhecimentos mas tipo.
Trabalhei com hibeenate em um projeto apenas aqui, e enfretamos dificuldades por nunca termos usado e somete ter documentação como base.

Um dos problemas que verificamos(enquanto criavamos e aprendiamos) era esta questão do UPDATE, de toda maneira que criavamos o sql, nunca conseguiamos atualizar somente um determinado campo na tabela, sempre que olhavamos o processo no debug, ele levava todos os objetos e fazia update de todos, sempre tinha lá o ?, ?, ?, ? (Tomcat)

Esse codigo que postou realmente só atualiza o campo específico?

PS: não discordo, só to querendo saber por curiosidade e pela minha incompentencia em não conseguir[/quote]

Só pra passar melhor o que faziamos.

EX. tinhamos um objeto com 15 atributos, mostravamos ao cliente, e este desejava atualizar somente a sua idade.
setavamos a nova idade no objeto e mandavamos o objeto pro metode de UPDATE do hibernate.

Alguns até se enervaram e fizeram sql na mão com SET e tal, mas isso quando já sabiamos quem sempre ia ser atualizado, porém na questão de um objeto inteiro, só se fizessemos varios testes, if e blabla, e isso num seria nada elegante :slight_smile:

PS: só exemplo