Condição do UPDATE no Hibernate

Ola a todos.
Minha dúvida está na utilização do update com o hibernate.

Gostaria de saber onde devo colocar a condição do update?

Você não precisa colocar condição nenhuma, o Hibernate já sabe gerar o SQL correto pra alterar seu registro, pra fazer um update simplesmente faça:

Ou alguns outros métodos que também estão disponíveis…

Realmente ainda não compreendi.

Preciso saber exatamente o que acontece porque um update pode ter a partir de sua condição a ordem para atualizar mais que um registro com um único comando.

Vamos conversar através de um simples exemplo ok? Exemplo:

Tabela usuario
Campos id, nome, cidade, estado

Como que o sessao.update(objeto); “sabe” que eu quero alterar todos os registros com estado = ‘SP’, para ‘PR’ ??

Estou fazendo assim:

UsuarioDAO dao = new UsuarioDAO(); Usuario usuario = new Usuario(1,'GIOVANI','CURITIBA','PR'); dao.UsAlterar(usuario);

Classe UsuarioDAO

[code]public class UsuarioDAO{
private SessionFactory factory;

public UsuarioDAO() throws Exception{

	factory = new Configuration().configure().buildSessionFactory(); 
		
}

public void UsAlterar(Usuario us) throws Exception {
	Session sessao = factory.openSession();
	sessao.update(us);
	sessao.flush();
	sessao.close();
}	

}[/code]

Na realidade você não vai fazer esse tipo de alteração com o update, o update sempre altera o registro com base na chave dele. Geralmente o pessoal só usa isso, mas se você realmente precisa que ele faça esse update dessa forma, então você teria que usar uma query HQL, assim:

[code]String hql= "update Usuario u set u.estado= :novo where u.estado = :antigo";

Query query = sessao.createQuery(hql);
query.setString("novo", "PR");
query.setString("antigo", "SP");

query.executeUpdate();[/code]

A chave da tabela precisa estar mapeada no Usuario.hbm.xml ou em algum outro lugar?