Alterar somente a coluna desejada sem fazer load no banco de dados, utilizando hibernate

Olá amigos, Persistentes^^

Estou com um problema de desempenho enorme em meu projeto, especificamente em uma entidade,

tenho uma entidade que tem determinados atributos e um atributo que é um anexo do tipo blob ou lob no banco de dados, que pode ser qual arquivo que foi limitado na aplicação para 1 mb, mais poderia ser maior e futuramente será em outra entidade.

Então quando eu carrego este form para update eu não trago o arquivo para edição já que minha aplicação é web, só irei permitir fazer download dele, e se o usuário altera os outros campos, por exemplo nome e manda salva, o update terá que fazer um load do objeto do banco e fazer um setNome(“novo valor”); e fazer update, mais nesse load perco um tempo notável de performance. e não queria ter que fazer o load para alterar, sei que isso não é aconselhável, pelo hibernate pelo fato de locks. masi gostaria de assumir este pelo melhor desempenho da aplicação.

queria poder fazer algo do tipo:

getSession().update(Classe.class, column, valor);

sem load que no banco seria algo do tipo:

UPDATE tabela SET nome=? WHERE id=?

simples assim é possível algo do tipo com hibernate?

Att. Fernando Leal.

Use HQL (Hibernate): http://www.mkyong.com/hibernate/hibernate-query-examples-hql/

Dá pra usar hql pra isso…

Do site dos caras http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html#batch-update

String hqlUpdate = "update Customer c set c.name = :newName where c.name = :oldName";
int updatedEntities = s.createQuery( hqlUpdate )
        .setString( "newName", newName )
        .setString( "oldName", oldName )
        .executeUpdate();

Se for Hibernate mesmo e não JPA, uma ideia é usar o dynamicUpdate.

http://www.mkyong.com/hibernate/hibernate-dynamic-update-attribute-example/