Como verificar se o valor de um campo foi alterado?

Pessoal estou com dúvida simples, porém não sei como resolver, quero executar uma regra de negócio caso o usuário altere o valor de um campo, mas não consigo verificar se esse valor foi alterado porque quando executo uma query no banco para pegar o valor do campo o hibernate não realiza a busca e pega o valor do cache primário. Como posso resolver isso?

	final String loginBD = usuarioDAO.findLoginById ( usuario.getId () ); //Essa busca me retorna o valor atual do usuário em cache e não no banco de dados
	if ( !loginBD.equals ( usuario.getLogin () ) )
	{
		changePassword ( usuario, "trocar" );
	}
	usuarioDAO.makePersistent ( usuario );

opa,

se for uma aplicação web e estiver trabalhando com checagem de alterações de valores apartir da tela populada…pode usar onChange do html mesmo…

talvez funcione…

Andei pensando nisso…

Mais gostaria de executar a regra inteira na camada de negócio no método que salva a minha Entidade.

Resolvi da seguinte forma:

Repeti o mapeamento do campo na entidade, deste modo dois atributos são carregados ao buscar a entidade no banco, como só altero um atributo eu consigo comparar com o outro.

Claro o atributo “replicado” como insertable=false e updatable = false

	@Column( length = 30, nullable = false )
	private String loginSimples;

	@Column( name = "loginSimples", updatable = false, insertable = false )
	private String loginSimplesBD;