Sessao não encerra

Olá, tenho o seguinte código em JSF:

@ManagedBean
@SessionScoped
@FacesConverter(value = "IndexedConverter")
public class CidadeControle {
    
    private Cidade cid = new Cidade();
    EntityManager em = GeraEntityManager.getInstance().getEntityManager();
    private List<Cidade> lista = new ArrayList<Cidade>();
    
    public String gravar(){
        em.getTransaction().begin();
        em.merge(cid);
        em.getTransaction().commit();
        atualizar();
        
        return "/Cidade/CidadeList";
    }
    
    public String atualizar(){
        lista = em.createQuery(" from Cidade").getResultList();
        return"/Cidade/CidadeList";
    }
    
    public String alterar(Integer id){
        cid = em.find(Cidade.class, id);
        return "/Cidade/CidadeForm";
    }
    public String incluir(){
        return "/Cidade/CidadeForm";
    }
    public String excluir(Integer id){
        cid = em.find(Cidade.class, id);
        em.getTransaction().begin();
        em.remove(cid);
        em.getTransaction().commit();
        atualizar();
        return "/Cidade/CidadeList";
    }
   
    public CidadeControle() {
        atualizar();
    }

Toda vez que eu altero um dado da cidade e depois de alterar quero incluir uma nova cidade, os dados da minha cidade previamente alterada estarão no formulário de incluir, e se eu apago e escrevo novos dados para minha cidade nova, ao invés de incluir uma nova cidade, ele simplesmente altera os dados da cidade que eu havia alterado.

Gostaria de saber alguma solução para este problema, se é necessário encerrar a sessão e se for, qual comando devo inserir…

att
~LF.

Se você não “limpar” o objeto Cidade antes de incluir um novo, os valores já presentes anteriormente nesse objeto ficarão setados enquanto a sessão estiver ativa. Uma forma que pode resolver é dar um new para “limpar” o seu objeto Cidade antes de incluir.