Converter a maneira q estou desenvolvendo está correto?

Boa noite pessoal estou fazendo um cadastro onde tenho uma lista de Estados e coloquei um ValueChangeListener para montar a lista de Cidades, bom até ai tá funcionando mas o problema está no momento de persistir os dados.
Criei meu Converter para Estado e outro para Cliente da seguinte maneira:

package br.com.fci.cxx.converter;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;

import org.hibernate.Session;

import br.com.fci.cxx.bean.Cidade;
import br.com.fci.cxx.util.HibernateUtility;

public class CidadeConverter implements Converter {

	public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) throws ConverterException {
		Session session = HibernateUtility.getSession();
		Cidade cidade = new Cidade();
				
		try {
			cidade = (Cidade) session.load(Cidade.class, new Long(arg2));
		} catch (Exception e) {
			System.out.print(e.getMessage());			
		}
		
		return cidade;
	}

	public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) throws ConverterException {
		if (arg2 == null) {
			return String.valueOf("");
		}
		return arg2.toString();
	}			
	
}