Converter

Bom dia!

Estou com um problema no Converter de uma classe.

Em um formulário, tenho 2 selectOneMenu, ambos uso converter


@FacesConverter("empresaConverter")
public class EmpresaConverter implements Converter {
	
	@Override
	public Object getAsObject(FacesContext context, UIComponent ui, String string) {
		
		if (string.trim().equals("")) {
			return null;
		} else {
			
			try {
				
				Empresa empresa = JPAUtil.getEntityManager().find(Empresa.class, Long.valueOf(string));
				
				return empresa;
				
				
			} catch(NumberFormatException exception) {
				throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid empresa"));
			}
			
		}
		
		
		
	}

	@Override
	public String getAsString(FacesContext context, UIComponent ui, Object obj) {
		
		if (obj == null || obj.equals("")) {
			return null;
		} else {
			
			Empresa empresa = (Empresa) obj;
			
			return empresa.getCodigo().toString();	
		}
	
	}

	
	
}

@FacesConverter("especialidadeConverter")
public class EspecialidadeConverter implements Converter {

	@Override
	public Object getAsObject(FacesContext context, UIComponent ui, String string) {
		
		if (string.trim().equals("")) {
			return null;
		} else {
			
			try {
				
				return JPAUtil.getEntityManager().find(Especialidade.class, Long.valueOf(string));
				
				
			} catch(NumberFormatException exception) {
				throw new ConverterException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Conversion Error", "Not a valid especialidade"));
			}
			
		}
				
	}

	@Override
	public String getAsString(FacesContext context, UIComponent ui, Object obj) {
		
		if (obj == null) {
			return null;
		} else {
			
			Especialidade esp = (Especialidade) obj;
			
			return esp.getCodigo().toString();	
		}
	
	}
	
}

No Formulário tenho:


<div class="form-group">
									<h:outputLabel value="Empresa" for="empresa" />
									<h:selectOneMenu id="empresa"
										value="#{agendaController.empresaSelecionada}"
										required="true" requiredMessage="Selecione uma Empresa"
										styleClass="form-control" >
										
										<f:selectItems noSelectionOption="Selecione" 
													   value="#{agendaController.empresas}"
													   var="empresa" itemLabel="#{empresa.nome}"
													   itemValue="#{empresa}"
										/>
										<f:converter converterId="empresaConverter"/>
										
									</h:selectOneMenu>
		                            <h:message for="empresa" styleClass="help-block"/>
		                        </div>
		                        
		                        <div class="form-group">
									<h:outputLabel value="Especialidade" for="especialidade" />
									<h:selectOneMenu id="especialidade"
										value="#{agendaController.especialidadeSelecionada}"
										required="true" requiredMessage="Selecione uma Especialidade"
										styleClass="form-control" converter="especialidadeConverter"
										>
										
										<f:selectItems noSelectionOption="Selecione" 
													   value="#{agendaController.especialidades}"
													   var="especialidade" itemLabel="#{especialidade.nome}"
													   itemValue="#{especialidade}"
										/>
										
									</h:selectOneMenu>
		                            <h:message for="especialidade" styleClass="help-block"/>
		                        </div>

O selectOne da especialidade funciona, porém o da Empresa fica aparecendo: Erro de validação: o valor não é válido

Implementei o hashCode() e o Equals() em ambas as classes.

Já tentei colocar o converter no <f:converter ou direto na tag <h:selectOneMeny, das duas formas o erro acontece…

Não sei mais o que pode ser…

Obrigado!