Erro ao tentar gravar uma nova informação - Hibernate + Jsf2

Senhores Boa tarde,

Estou com um plobema ao inserir um dado no banco de dados, seguinte:

Tenho a classe divida e pagamento, um divida pode haver vários pagamentos e muito pagamentos pertence a uma dívida, pois bem tenho uma pegina que existe um dataTable demonstrando as dívidas e quando eu clico na linha desejada aparece um <p:dialog> com as informações da divida e os campos para inserir o pagamento onde abaixo segue o código:


<p:dialog id="telapagamento" widgetVar="pagetela" header="Coloque os dados de pagamento">
                <p:dataTable id="tablepagamento" value="#{pagamentoFaces.listofPagamentos}" var="pagamento" selection="#{pagamentoFaces.selectedPagamento}"
                             emptyMessage="Não existe pagamento cadastrado" rowKey="#{pagamento.id}" selectionMode="single">
                    <p:ajax event="rowSelect" update=":formmain:pnlpag"/>
                    <p:column headerText="ID">
                         #{pagamento.id}
                    </p:column>
                    <p:column headerText="Forma de Pagamento">
                         #{pagamento.formapagamento}
                    </p:column>
                    <p:column headerText="Data de Pagamento">
                         #{pagamento.datapagamento}
                    </p:column>
                    <p:column headerText="Valor">
                         #{pagamento.valor}
                    </p:column>
                    <p:column headerText="Dívida">
                         #{pagamento.divida}
                    </p:column>
                    <f:facet name="footer">
                        Panel de Pagamentos
                    </f:facet>
                </p:dataTable>
                <p:separator/>
                <p:panelGrid columns="2" id="pnlpag">
                    <p:outputLabel for="venc" value="Vencimento: "/>
                    <h:outputText id="venc" value="#{dividaFaces.selectedDivida.vencimento}">
                        <f:convertDateTime pattern="dd/MM/yy"/>
                    </h:outputText>


                    <p:outputLabel for="despesa" value="Dívida: "/>
                    <p:inputText id="despesa" value="#{dividaFaces.selectedDivida.id}"/>

                    <p:outputLabel for="pagamentoID" value="Pagamento: "/>
                    <p:inputText id="pagamentoID" value="#{pagamentoFaces.selectedPagamento.id}"/>

                    <p:outputLabel for="datapagamento" value="Data do Pagamento: "/>
                    <p:calendar id="datapagamento" value="#{pagamentoFaces.selectedPagamento.datapagamento}"/>

                    <p:outputLabel for="valorpagamento" value="Valor do pagamento: "/>
                    <p:inputText id="valorpagamento" onkeypress="mascara(this, valor);" value="#{pagamentoFaces.selectedPagamento.valor}"/>


                    <p:outputLabel for="pgto" value="Forma de Pagamento:"/>
                    <p:selectOneMenu id="pgto" value="#{pagamentoFaces.selectedPagamento.formapagamento}">
                        <f:selectItem itemLabel="|| - Selecione - || "/>
                        <f:selectItem itemLabel="Cartão" itemValue="Cartao"/>
                        <f:selectItem itemLabel="Boleto" itemValue="Boleto"/>
                        <f:selectItem itemLabel="Espécie" itemValue="Especie"/>
                        <f:selectItem itemLabel="Cheque" itemValue="Cheque"/>
                        <f:selectItem itemLabel="Tranferência" itemValue="Transferencia"/>
                    </p:selectOneMenu>

                    <p:outputLabel for="dividaid" value="Divida ID:"/>
                    <p:inputText id="dividaid" value="#{pagamentoFaces.selectedPagamento.divida}"/>

                    <f:facet name="footer">
                        <center>
                            <p:commandButton value="Inserir" action="#{pagamentoFaces.newPay()}" update=":formmain:avisos" immediate="true"/>    
                            <p:commandButton value="Gravar" action="#{pagamentoFaces.addingPay()}" update=":formmain:avisos :formmain:telapagamento"/>
                        </center>
                    </f:facet>

                </p:panelGrid>

            </p:dialog>

Que eu teria a opção que caso eu quisesse adicionar um novo pagamento mudava o valor do pagamentoID e ao apertar no botão gravar era para inserir um novo dado com as informações posta, porém ao gravar é dada a seguinte mensagem de erro:

org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
	at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:85)
	at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:70)
	at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:90)
	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
	at br.com.finance.dao.GenericDao.savingPojo(GenericDao.java:32)
	at br.com.finance.dao.PagamentoDAO.addPagamento(PagamentoDAO.java:28)
	at br.com.finance.view.PagamentoFaces.addingPay(PagamentoFaces.java:52)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:101)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:786)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1251)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)

E não sei o que pode ser, até cheguei a achar que seria o Converter, mas inserindo alguns println o método está sendo invocado e passa normal.

Alguém poderia me ajudar?

Agradeço desde já.