कभी-कभी जब ओबीजी बना रहता है, तो इसके क्षेत्र में से एक डीबी क्षेत्र में फिट होने के लिए बहुत बड़ा होता है, जिसके परिणामस्वरूप डेटा छंटनी अपवाद होता है। निम्नलिखित कोड में, मैं डेटा अपवाद को पकड़ने का प्रयास करता हूं और बस फ़ील्ड को खाली करता हूं, और बचाता हूं। हालांकि मुझे सहेजते समय अपवाद मिलता है। बैच अपडेट अपवाद क्यों होता है और मैं इसके आसपास कैसे हो सकता हूं?org.hibernate.StaleStateException: बैच अपडेट अद्यतन से अप्रत्याशित पंक्ति गणना लौटा [0]; वास्तविक पंक्ति गणना: 0; अपेक्षित: 1
public static void save(Object obj) throws Exception{ try{ beginTransaction(); getSession().save(obj); commitTransaction(); }catch(Exception e){ e.printStackTrace(); rollbackTransaction(); throw e; }finally{ closeSession(); //not needed, session obtained from sf.getCurrentSession() will auto close } } public static void saveXXX(XXX rec){ try { save(rec); } catch (org.hibernate.exception.DataException e) { e.printStackTrace(); saveXXX(rec, e); //causes an exception } catch (Exception e) { e.printStackTrace(); } } private static void saveXXX(WhoisRecord rec, DataException e) { rec.setField(""); //empty out the problem field saveXXX(rec);
अपवाद:
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.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:114) at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109) at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:244) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2382) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2335) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2635) at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:115) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:365) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137) . . .
आप सबसे अच्छा कर रहे हैं, आप मेरा दिन बचाया – BSeitkazin