org.hibernate.StaleStateException: Batch update returned unexpected row count from up
Bonjour,
J'ai l'exception suivante qui est déclenchée de temps en temps
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 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:61)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java:46)
at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:68)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.ulnet.memberarea.dao.OrderBook.DaoOrderBookImpl.updateTblTrade(DaoOrderBookImpl.java:905)
at com.ulnet.memberarea.service.OrderBook.ServiceOrderBookImpl.updateTblTrade(ServiceOrderBookImpl.java:450)
at com.ulnet.memberarea.OdiSysConnection.MonitoringLoader.updateTradeList(MonitoringLoader.java:1595)
at com.ulnet.memberarea.OdiSysConnection.MonitoringLoader.run(MonitoringLoader.java:523) |
L'exception est declenche quand j'essaye de commiter les modifications effectuees.
L'exception est donc déclenchè au niveau de cette fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public void updateTblTrade(Trade trade) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
Tbltrade t = generateTbltrade(trade);
if ( !isExist(t, session) ) {
session.save(t);
System.out.println("[Tbltrade Save]");
}
else {
session.merge(t);
System.out.println("[Tbtrade Merge]");
}
session.getTransaction().commit();
}
catch(Exception e) {
session.beginTransaction().rollback();
e.printStackTrace();
}
} |
ici http://www.hibernate.org/hib_docs/v3...Exception.html ils disent quand ça arrive, mais pas comment y remédier.
Qlq'un à déjà eu le même problème.
Merci