Alterações realizadas em um bean dentro do EJB não permanecem fora do contexto do EJB

Eu criei EJB para efetuar alguns testes e aprimorar meus conhecimentos a estrutura no momento está a seguinte.

Tenho um EJB chamado ClienteEJB, e a sua implementação chamada ClienteBean Tenho uma Action chamada ClienteAction.

Dentro da ClienteAction eu faço uma chamada a um método qualquer do EJB passando como parametro uma instância de Cliente.

Dentro desse método do EJB eu realizo algumas modificações nos atributos, por exemplo, altero o nome do cliente.

Após o método EJB ser processado, o processamento volta para minha Action, só que neste momento todas as alterações realizadas no EJB não estão lá. A minha instância de Cliente continua exatamente com os mesmos atributos que tinha antes de entrar no método EJB.

Porquê isso acontece?, Como posso contornar isso? Isso é de extrema importância

Código EJB:

[code]package br.com.ejb;

import javax.ejb.Remote;
import javax.ejb.Stateless;

import br.com.entity.PreCadastroCliente;
import br.com.pine.ejb.dao.PineEntityDAO;

@Stateless(mappedName = “PreCadastroClienteEJB”)
@Remote(value = PreCadastroClienteEJB.class)
public class PreCadastroClienteBean extends PineEntityDAO implements PreCadastroClienteEJB {

public void foo(PreCadastroCliente pcc) {
	pcc.setNmFantasia("PCC");
}

}

[/code]

[code]
package br.com.ejb.struts;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import br.com.ejb.PreCadastroClienteEJB;
import br.com.entity.PreCadastroCliente;
import br.com.pine.ejb.PineServiceLocator;
import br.com.pine.struts.PineAction;

public class PreCadastroClienteAction extends PineAction {

public ActionForward cadPreCadastroCliente(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
	PreCadastroClienteEJB preCadastroClienteEJB = (PreCadastroClienteEJB) PineServiceLocator.findEJB(PreCadastroClienteEJB.class);
	PreCadastroCliente cliente = new PreCadastroCliente();
	cliente.setNmFantasia("Nome fantasia");
	preCadastroClienteEJB.foo(cliente);
	System.out.println("Nm fantasia após ejb: " + cliente.getNmFantasia());
	return mapping.findForward("cadCliente");
}[/code]

O objetivo dessa dúvida é que eu realizo inserts dentro do meu DAO, mas quem é responsável por chamar meus DAO é o EJB, lá dentro com JPA, eu insiro a nova entidade no banco de dados, a JPA cria um novo código sequencial pra essa entidade pra mim, e eu preciso que este código esteja disponível na minha Action.