Update na tabela de varios registros de uma unica vez

Boa noite, tenho o seguinte codigo:

Meu XHTML:
<p:dataTable value="#{cidadeController.listaCidade}" var=“Cidade” id=“cidade” >
<p:column headerText=“Código” filterBy="#{cidadeController.id_cidade}">
<h:outputText value="#{Cidade.id_cidade}"/>
</p:column>

            <p:column>
                <f:facet name="header">
                    <h:outputText value="Cidade"/>
                </f:facet>
                <h:outputText value="#{Cidade.den_cidade}"/>
            </p:column>

            <p:column>
                <f:facet name="header">
                    <h:outputText value="Estado"/>
                </f:facet>
                <h:outputText value="#{Cidade.estado}"/>
            </p:column>                
            <p:column>
                <f:facet name="header">
                    <h:outputText value="Alteracao"/>
                </f:facet>    
                <h:outputText value="#{Cidade.id_cidade}"/>

                <h:outputText value="#{cidadeController.cidade.id_cidade = Cidade.id_cidade}" />
                <h:inputText value="#{cidadeController.cidade.den_cidade}" 
                             onkeyup="this.value = this.value.toUpperCase();"/> 

                <p:commandButton value="Alterar" 
                                 action="#{cidadeController.atualizarCidade()}" 
                                style="height:30px; font-size: 13px; font-family: sans-serif" update="cidade"/>
                                   
            </p:column>
        </p:dataTable>        

Minha classe controller:

public List listaCidade() {
List lista;
lista = new CidadeDao().list();
return lista;
}

public void prepararAlterarCidade(ActionEvent actionEvent) {
cidade = (Cidade) (listaCidade.getRowData());
}
public void atualizarCidade() {
InterfaceCidade dao = new CidadeDao();
dao.atualizar(cidade);

}

Minha classe DAO:
@Override
public void atualizar(Cidade cidade) {
Session ss = HibernateUtil.getSessionFactory().getCurrentSession();
ss.beginTransaction();
ss.update(cidade);
ss.getTransaction().commit();
}

@Override
public List<Cidade> list() {
    Session ss = HibernateUtil.getSessionFactory().getCurrentSession();
    ss.beginTransaction();
    List lista = ss.createQuery("From cidade").list();
    ss.getTransaction().commit();
    return lista;
}   

Minha classe interface:
public interface InterfaceCidade {
public void atualizar(Cidade cidade);
public List list();
}

Classe de geters e sets

public class Cidade implements Serializable {

@Id
@GeneratedValue
private int id_cidade;
private String den_cidade;
private String estado;

public int getId_cidade() {
    return id_cidade;
}

public void setId_cidade(int id_cidade) {
    this.id_cidade = id_cidade;
}

 

public String getDen_cidade() {
    return den_cidade;
}

public void setDen_cidade(String den_cidade) {
    this.den_cidade = den_cidade;
}

public String getEstado() {
    return estado;
}

public void setEstado(String estado) {
    this.estado = estado;
}

}

O que eu preciso é o seguinte:

Na minha dataTable lista as cidades, na ultima coluna coloquei um inputText e quero atualizar varias den_cidade de uma vez, por exemplo como aparece na minha table:

id_cidade | den_cidade | estado | alteraçao den_cidade
1 | Sao Paulo | SP | -----> Santo Andre
2 | Rio de Janeiro | RJ | ------> Angra dos Reis
3 | Campinas | SP | -------> Santo Andre
4 | Curitiba | PR | -------> Londrina
5 | Porto Alegre | RS | ------> Pelotas

o que esta depois da seta seria meu inputText onde o usuario vai digitar a cidade e abaixo da table
tenho um botao alterar que vai alterar todas as cidades de uma so vez no banco de dados.

No codigo que postei esta alterando uma cidade de cada vez… alguém poderia me ajudar??

Preciso muito disso e nao estou conseguindo, se me ajudarem serei muito grato.

Alguem sabe me dizer como posso fazer isso?? estou precisando muito

Bom dia… alguém ja passou por essa situação pra me dar uma ajuda??