Atualizar no Hibernate

Olá pessoal,

Tenho uma dúvida :sad:
Tenho cerca de 10 mil registros para atualizar uma propriedade de dataVencimento.
Sei que em SQL poderia facilmente utilizar: update contratos set dataVencimento = ‘2007-12-31’ where contratos.ativo = true;
E no hibernate, como faço? Terei que dar hibernateSession.get(MyClasss, id…) nos 10 mil objetos, atualizar a propriedade no objeto e depois
dar um hibernateSession.saveOrUpdate(myObject) em cada um?
O problema que eu vejo, é que o minha classe Contrato possui inúmeras dependências, inclusive coleções. Ou seja, a cada get o hibernate me trará TODA a hierarquia. Absurdos joins e selects ocorrerão.

Como o pessoal resolve isto? Utilizando SQL nativa ou há outra solução para update em lotes?

Valeu!

Opa,

Não sei se o método update suporta só setar o campo a ser atualizado e ele atualiza sem a chave… tente assim… se não der, veja este link abaixo:

http://anonhibernate.labs.jboss.com/branches/DOC_TRANSLATION_3_2/pt-br/modules/batch.xml

:okok:

Será que assim não serve?

[code]Query query = sessao.createQuery("UPDATE Contrato con SET con.dataVencimento = :data WHERE con.ativo = :ativo");

query.setDate("data", new Date());
query.setBoolean("ativo", true);

query.executeUpdate();[/code]

http://www.hibernate.org/hib_docs/reference/en/html/batch.html

Olá parceiros,
muito obrigado pela atenção!