Update p:datatable

Alo galera me ajude aeeeeee.

Estou tentando fazer actualizacao de dados na base de dados de uma tabela feita no primefaces o codigo nao da erro ele apenas nao actualiza da pra me ajudar aeeeee por favor!?

Minha view

<?xml version="1.0" encoding="UTF-8" ?>

<ui:composition template="_template.xhtml">
<ui:define name=“titulo”>
Actualizar Eventos
</ui:define>

<ui:define name="conteudo">
	<h:form id="formulario">
		<p:growl id="msgs" showDetail="true" autoUpdate="true" />

		<p:fieldset legend="Actualizar Eventos">
			<p:dataTable id="tabelaeventos" value="#{eventoBean.eventosModel}"
				var="evento" editable="true" editMode="cell"
				paginator="true" rows="10">
				<f:facet name="header">
       			Tabela de actualizacao de eventos
   			</f:facet>

				<p:ajax event="cellEdit" immediate="true"
					listener="#{eventoBean.onCellEdit}"
					update=":formulario:tabelaeventos :formulario:msgs" process="@this"/>

				<p:column headerText="Nome">
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{evento.nomeEvento}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText id="modelInput" value="#{evento.nomeEvento}"
								style="width:96%" immediate="true"
								validatorMessage="O nome nao pode ser superior a 40 caracteres"
								required="true">
								<f:validateLength maximum="40" />
								<f:ajax event="blur" />
							</p:inputText>
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column headerText="Descricao">
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{evento.descricaoEvento}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText value="#{evento.descricaoEvento}" style="width:96%"
								label="Descricao" immediate="true" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column headerText="Data Inicio">
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{evento.dataEventoInicio.time}">
								<f:convertDateTime pattern="dd/MM/yyy" timeZone="Africa/Harare" />
							</h:outputText>
						</f:facet>
						<f:facet name="input">
							<p:calendar id="dataEventoInicio"
								value="#{evento.dataEventoInicio.time}" style="width:96%"
								label="Data Fim" immediate="true" pattern="dd/MM/yyyy"
								timeZone="Africa/Harare" />
						</f:facet>
					</p:cellEditor>
				</p:column>

				<p:column headerText="Data Fim">
					<p:cellEditor>
						<f:facet name="output">
							<h:outputText value="#{evento.dataEventoFim.time}">
								<f:convertDateTime pattern="dd/MM/yyy" timeZone="Africa/Harare" />
							</h:outputText>
						</f:facet>
						<f:facet name="input">
							<p:calendar id="dataEventoFim"
								value="#{evento.dataEventoFim.time}" style="width:96%"
								label="Data Fim" immediate="true" pattern="dd/MM/yyyy"
								timeZone="Africa/Harare" />
						</f:facet>
					</p:cellEditor>
				</p:column>



				<f:facet name="footer">
					<h:outputText value="Existem " />
					<h:outputText value="#{fn:length(eventoBean.listaEventos)}" />
					<h:outputText value=" eventos cadastrados." />
				</f:facet>
			</p:dataTable>
		</p:fieldset>
	</h:form>
</ui:define>

</ui:composition>

Meu metodo onCellEdit

public void onCellEdit(CellEditEvent event) {

	Object oldValue = event.getOldValue();
	Object newValue = event.getNewValue();
	
	System.out.println("Antigo: " + oldValue + " Novo: " + newValue);
	
	if (newValue != null && !newValue.equals(oldValue) && newValue.toString().length() < 40) {

		if (event.getColumn().getHeaderText().equalsIgnoreCase("Nome")) {
			this.evento.setNomeEvento(newValue.toString());
		} else if (event.getColumn().getHeaderText().equalsIgnoreCase("Descricao")) {
			this.evento.setDescricaoEvento(newValue.toString());
		}

		new DAO<Evento>(Evento.class).atualiza(this.evento);
		this.evento = new Evento();

		FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Actualizado",
				"Antigo: " + oldValue + ", Novo: " + newValue);
		FacesContext.getCurrentInstance().addMessage(null, msg);

		listaEventosFiltradosPeloNome = new DAO<Evento>(Evento.class).filtrarEventoPeloNome(pegarUsuarioDaSessao());
	}
}

## Metodo na classe DAO para actualizar na base de dados

    public void atualiza(T t) {
		EntityManager em = new JPAUtil().getEntityManager();
		em.getTransaction().begin();

		em.merge(t);

		em.getTransaction().commit();
		em.close();
	}

Meu Metodo da classe dao

	public void atualiza(T t) {
	EntityManager em = new JPAUtil().getEntityManager();
	em.getTransaction().begin();

	em.merge(t);

	em.getTransaction().commit();
	em.close();
}