Tenho a classe funcionario, e na minha página jsf posso alterar o salário de funcionarios…
Então fiz a página com um rich:extandedDataTable e utilizei o inplaceInput para poder realizar as alterações…
<rich:column sortBy="#{objeto.salarioMensal}" filterBy="#{objeto.salarioMensal}"
		label="Salário Fixo (R$)" filterEvent="onkeyup" width="200px" style="text-align:center">
		<f:facet name="header">
				<h:outputText value="Salário Fixo (R$)" />
		</f:facet>
		<rich:inplaceInput id="salarioFixo"
			viewClass="salarioFixo" onfocus="setPriceMasc(this)"
			changedClass="salarioFixo" layout="block"
			value="#{objeto.salarioMensal}" openOnEdit="true"
			editEvent="ondblclick">
	 	        <a4j:support event="onviewactivated" reRender="salarioFixo"
				action="#{mbManutencaoMontagemFolhaPagamento.addToList(objeto)}" />
			</rich:inplaceInput>
</rich:column>
Chamo o método via ajax para adicionar o objeto a uma lista de espera, pois os dados só serão salvos no banco de dados após o úsuario apertar o botao que chama o método responssável por alterar os dados…
[code]public void addToList(Funcionario obj) {
//Adicionando a minha list
getListaFuncionariosAlterar().add(obj);
/**
* Até aqui o valor do bigdecimal ainda continua normal 
* Por exemplo se setei no jsf 0.05  ele continua 0.05
*/
}[/code]
[size=18]
Quando o usúario chama o método de realizar as alterações o BigDecimal passa de 0.05 para 5[/size]
public void alterarDados(){
	for(Funcionario obj : getListaFuncionariosAlterar()){
		getFuncionarioService().merge(obj);	
	}
}