Ich habe mit viel manuellen Aufwand meine MYSQL Datenbank zurück nach h2 migriert. Ich habe diese in eine neue Jverein Installation kopiert. Soweit so gut, alles funktioniert. Aber jetzt wo ich eine neue Buchung erstellen will, scheint JVerein die ID nicht zu befüllen, und somit beschwert sich h2, dass diese nicht NULL sein darf.
Ich habe einen ganzen Tag Aufwand mit der Migration gehabt, und weiss ehrlich gesagt nicht, was schief gegangen sein könnte. Wenn ich mich über squirrel mit h2 verbinde, führt ein "select max(id) from buchung" einwandfrei zu einem Ergebnis. Oder bestimmt JVerein die neue ID etwa anders?
Log:
Code: Alles auswählen
[Fri Feb 09 00:01:31 CET 2018][DEBUG][main][de.willuhn.datasource.db.AbstractDBObject.getInsertSQL] executing sql statement: prep52: insert into BUCHUNG (DATUM,BLATTNUMMER,PROJEKT,ART,BETRAG,ABRECHNUNGSLAUF,MITGLIEDSKONTO,AUSZUGSNUMMER,VERZICHT,KONTO,SPENDENBESCHEINIGUNG,NAME,BUCHUNGSART,SPLITID,SPLITTYP,UMSATZID,ZWECK,KOMMENTAR) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) {1: DATE '2017-05-13', 2: NULL, 3: NULL, 4: '', 5: 2.0, 6: NULL, 7: NULL, 8: NULL, 9: FALSE, 10: 3, 11: NULL, 12: 'Kuchenverkauf', 13: 32, 14: NULL, 15: NULL, 16: NULL, 17: 'Kuchenverkauf', 18: ''}
[Fri Feb 09 00:01:31 CET 2018][ERROR][main][de.jost_net.JVerein.gui.control.BuchungsControl.handleStore] Fehler beim Speichern der Buchung.
java.rmi.RemoteException: insert failed; nested exception is:
org.h2.jdbc.JdbcSQLException: NULL nicht zulässig für Feld "ID"
NULL not allowed for column "ID"; SQL statement:
insert into BUCHUNG (DATUM,BLATTNUMMER,PROJEKT,ART,BETRAG,ABRECHNUNGSLAUF,MITGLIEDSKONTO,AUSZUGSNUMMER,VERZICHT,KONTO,SPENDENBESCHEINIGUNG,NAME,BUCHUNGSART,SPLITID,SPLITTYP,UMSATZID,ZWECK,KOMMENTAR) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) [23502-193]
at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:709)
at de.willuhn.datasource.db.AbstractDBObject.store(AbstractDBObject.java:316)
at de.jost_net.JVerein.gui.control.BuchungsControl.handleStore(BuchungsControl.java:760)
at de.jost_net.JVerein.gui.control.BuchungsControl.buchungSpeichern(BuchungsControl.java:1515)
at de.jost_net.JVerein.gui.control.BuchungsControl.access$600(BuchungsControl.java:102)
at de.jost_net.JVerein.gui.control.BuchungsControl$16.handleAction(BuchungsControl.java:1505)
at de.willuhn.jameica.gui.parts.Button$1$1.run(Button.java:177)
at org.eclipse.swt.custom.BusyIndicator.showWhile(Unknown Source)
at de.willuhn.jameica.gui.GUI$6.run(GUI.java:896)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Unknown Source)
at org.eclipse.swt.widgets.Display.syncExec(Unknown Source)
at de.willuhn.jameica.gui.GUI.startSync(GUI.java:892)
at de.willuhn.jameica.gui.parts.Button$1.widgetSelected(Button.java:171)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at de.willuhn.jameica.gui.GUI.loop(GUI.java:913)
at de.willuhn.jameica.gui.GUI.init(GUI.java:324)
at de.willuhn.jameica.system.Application.init(Application.java:148)
at de.willuhn.jameica.system.Application.newInstance(Application.java:90)
at de.willuhn.jameica.Main.main(Main.java:78)
Caused by: org.h2.jdbc.JdbcSQLException: NULL nicht zulässig für Feld "ID"
NULL not allowed for column "ID"; SQL statement:
insert into BUCHUNG (DATUM,BLATTNUMMER,PROJEKT,ART,BETRAG,ABRECHNUNGSLAUF,MITGLIEDSKONTO,AUSZUGSNUMMER,VERZICHT,KONTO,SPENDENBESCHEINIGUNG,NAME,BUCHUNGSART,SPLITID,SPLITTYP,UMSATZID,ZWECK,KOMMENTAR) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) [23502-193]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.table.Column.validateConvertUpdateSequence(Column.java:311)
at org.h2.table.Table.validateConvertUpdateSequence(Table.java:784)
at org.h2.command.dml.Insert.insertRows(Insert.java:151)
at org.h2.command.dml.Insert.update(Insert.java:114)
at org.h2.command.CommandContainer.update(CommandContainer.java:98)
at org.h2.command.Command.executeUpdate(Command.java:258)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:160)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:146)
at de.willuhn.datasource.db.AbstractDBObject.insert(AbstractDBObject.java:657)
... 23 more
[Fri Feb 09 00:01:31 CET 2018][DEBUG][main][de.willuhn.datasource.db.AbstractDBObject.transactionRollback] [rollback] transaction count: 0
[Fri Feb 09 00:01:31 CET 2018][DEBUG][main][de.willuhn.datasource.db.AbstractDBObject.transactionRollback] [rollback] transaction rollback
[Fri Feb 09 00:01:31 CET 2018][DEBUG][pool-1-thread-1][de.willuhn.jameica.messaging.NamedConcurrentQueue.deliver] deliver message [Fri Feb 09 00:01:31 CET 2018][ERROR] Fehler beim Speichern der Buchung.