Problemas com relacionamento do Hibernate

Opa :smiley:

Tenho um mapeamento da seguinte maneira:

EmpresaBean

	@OneToMany(mappedBy="empresa", fetch=FetchType.LAZY)
	@Cascade(CascadeType.ALL)
	private Collection<FuncionarioBean> funcionarios = new ArrayList<FuncionarioBean>();

FuncionarioBean

@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="id_empresa", insertable=true, updatable=true)
	@Fetch(FetchMode.JOIN)
	private EmpresaBean empresa;

Quando eu efetuo a ação de logar no meu sistema, eu passo um FuncionarioBean e dentro dele, tenho um EmpresaBean. Em certa parte do sistema, desejo atualizar os dados cadastrais do EmpresaBean e meu método está da seguinte maneira:

public String atualizarEmpresa() {
		EmpresaDAO dao = new EmpresaDAO(EmpresaBean.class);
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			BigInteger hashSenha = new BigInteger(1, md.digest(getFuncionarioBean().getLogin().getSenha().getBytes()));
			String senha = hashSenha.toString(16);
			getFuncionarioBean().getLogin().setSenha(senha);
			getFuncionarioBean().getLogin().setNivel(Status.MASTER);
			getFuncionarioBean().getLogin().setStatus(Status.LIBERADO);
			getFuncionarioBean().getLogin().setFuncionario(getFuncionarioBean());
			getFuncionarioBean().getEmpresa().getFuncionarios().add(getFuncionarioBean());
			dao.update(getFuncionarioBean().getEmpresa());
			
		} catch (NoSuchAlgorithmException nsae){
			logger.error("Erro ao codificar senha: " + nsae);
			SendMail sendMail = new SendMail("Erro ao codificar senha: ", nsae);
			sendMail.run();
			return ERRO;
		}
		return verificarErros(dao);
		
	}

Se eu deixar o @OneToMany(mappedBy=“empresa”, fetch=FetchType.LAZY) assim, vou receber a exceção:

Para resolver isso, eu já tentei todas as mágicas encontradas na net ( filtros, sessionFactory e afins ) e nada resolveu meu problema. Com todas as artimanhas que eu encontrei, só consegui resolver o problema mudando o FetchType para EAGER.

Alguém pode me dar uma explicação pq ele tem ‘dificuldades’ para abrir uma nova sessão sem qrer pegar a antiga e me explicar se tem algum problema usar EAGER?

Valeu

[]'s

David