Hallo,
ich bin gerade Dabei meine Kenntnisse zu Hibernate wieder auf den aktuellsten Stand zu bringen...
Jetzt habe ich eine DAO Schicht geschrieben und soweit funktioniert auch alles....
aber ich bekomme während meines Unit Tests folgende Fehlermeldung(Habe schon alle anderen Unit Tests auskommentiert):
Obwohl ich nur einmal ein PizzaBO speichere
liefert mir eine Abfrage trotzdem eine Liste mit Zwei Elementen.
Damit falle ich selbstverständlich beim Löschen auf die Nase....
Was ich aber nicht verstehe ist, woher ich den Zweiten Eintrag bekomme, vor allem da der die gleiche Id hat....
Der Code ist auf GitHub zu finden...
Hat vielleicht irgend jemand einen Tipp was ich falsch mache..Ich vermute ich habe derzeit ein Dickes Brett vor dem Kopf...
Gruß
Karl Heinz Marbaise
ich bin gerade Dabei meine Kenntnisse zu Hibernate wieder auf den aktuellsten Stand zu bringen...
Jetzt habe ich eine DAO Schicht geschrieben und soweit funktioniert auch alles....
aber ich bekomme während meines Unit Tests folgende Fehlermeldung(Habe schon alle anderen Unit Tests auskommentiert):
Code:
011-03-06 09:42:00,601|DEBUG|main|casestudy.hibernate.HibernateUtil||HibernateUtil(done)
2011-03-06 09:42:01,732|DEBUG|main|casestudy.dao.HibernateDAO||save(PizzaGroesseBO id:1) done.
2011-03-06 09:42:01,732|INFO|main|soebes.casestudy.PizzaBOTest||PizzaGroesse:1
2011-03-06 09:42:01,734|DEBUG|main|casestudy.dao.HibernateDAO||save(ZutatBO id:1) done.
2011-03-06 09:42:01,734|INFO|main|soebes.casestudy.PizzaBOTest||Zutat:1
2011-03-06 09:42:01,735|DEBUG|main|casestudy.dao.HibernateDAO||save(ZutatBO id:2) done.
2011-03-06 09:42:01,735|INFO|main|soebes.casestudy.PizzaBOTest||Zutat:2
2011-03-06 09:42:01,755|DEBUG|main|casestudy.dao.HibernateDAO||save(PizzaBO id:1) done.
2011-03-06 09:42:01,756|INFO|main|soebes.casestudy.PizzaBOTest||Saved Pizza:1
2011-03-06 09:42:01,756|DEBUG|main|soebes.casestudy.PizzaBOTest||beforeClass(done)
2011-03-06 09:42:01,781|DEBUG|main|casestudy.dao.HibernateDAO||findAll(PizzaBO):2
2011-03-06 09:42:01,790|DEBUG|main|soebes.casestudy.PizzaBOTest||afterClass()
2011-03-06 09:42:01,792|DEBUG|main|casestudy.dao.HibernateDAO||findAll(PizzaBO):2
2011-03-06 09:42:01,793|INFO|main|soebes.casestudy.PizzaBOTest||deletePizza(): pizzaList:2
2011-03-06 09:42:01,793|INFO|main|soebes.casestudy.PizzaBOTest||Delete Pizza: 1
2011-03-06 09:42:01,801|INFO|main|soebes.casestudy.PizzaBOTest||Delete Pizza: 1
2011-03-06 09:42:01,803|ERROR|main|hibernate.jdbc.AbstractBatcher||Exception executing batch:
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:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
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)
at com.soebes.casestudy.hibernate.HibernateUtil.commitTransaction(HibernateUtil.java:62)
at com.soebes.casestudy.dao.HibernateDAO.remove(HibernateDAO.java:118)
at com.soebes.casestudy.dao.IdDAO.remove(IdDAO.java:57)
at com.soebes.casestudy.PizzaBOTest.deletePizza(PizzaBOTest.java:89)
at com.soebes.casestudy.PizzaBOTest.afterClass(PizzaBOTest.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:525)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:202)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:130)
at org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:222)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)
at org.testng.TestRunner.runWorkers(TestRunner.java:1125)
at org.testng.TestRunner.privateRun(TestRunner.java:749)
at org.testng.TestRunner.run(TestRunner.java:600)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312)
Obwohl ich nur einmal ein PizzaBO speichere
Code:
2011-03-06 09:42:01,755|DEBUG|main|casestudy.dao.HibernateDAO||save(PizzaBO id:1) done.
2011-03-06 09:42:01,756|INFO|main|soebes.casestudy.PizzaBOTest||Saved Pizza:1
Code:
2011-03-06 09:42:01,792|DEBUG|main|casestudy.dao.HibernateDAO||findAll(PizzaBO):2
2011-03-06 09:42:01,793|INFO|main|soebes.casestudy.PizzaBOTest||deletePizza(): pizzaList:2
Was ich aber nicht verstehe ist, woher ich den Zweiten Eintrag bekomme, vor allem da der die gleiche Id hat....
Der Code ist auf GitHub zu finden...
Hat vielleicht irgend jemand einen Tipp was ich falsch mache..Ich vermute ich habe derzeit ein Dickes Brett vor dem Kopf...
Gruß
Karl Heinz Marbaise