BUG: generated-id key was not set by the update call

42 views
Skip to first unread message

Stefan Dangl

unread,
Jun 16, 2016, 8:07:27 AM6/16/16
to ORMLite Android Users
Hello,

I got an error which should not occur, the exception is:

06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err: java.sql.SQLException: Unable to run insert stmt on object MissionData: id=0 missionId=131 timestamp=16.06.16 14:00:39 position=(12.12141,47.79869) speed=0 course= activityId=7856 orderId= orderUId= weatherNum() streetStateNum(): INSERT INTO `MISSIONDATA` (`ACTIVITY_ID` ,`comment` ,`course` ,`POS_Y` ,`POS_X` ,`ORDER_ID` ,`ORDERINSTANCE_UID` ,`photo` ,`quantity` ,`weatherNum` ,`streetStateNum` ,`timestamp` ,`speed` ,`MISSION_ID` ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at com.j256.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:135)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at com.j256.ormlite.stmt.StatementExecutor.create(StatementExecutor.java:450)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at com.j256.ormlite.dao.BaseDaoImpl.create(BaseDaoImpl.java:310)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at com.mobidat.dao.impl.Dao.insert(Dao.java:66)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at com.mobidat.wp2.missionserviceImpl.MissionManager.createMissionData(MissionManager.java:262)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at com.mobidat.wp2.missionserviceImpl.MissionManager.run(MissionManager.java:315)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at java.lang.Thread.run(Thread.java:841)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err: Caused by: java.sql.SQLException: generated-id key was not set by the update call
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err:     at com.j256.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:115)
06-16 14:00:39.884 15165-15414/com.mobidat.wp2.missionserviceImpl W/System.err: ... 6 more

The code in MappedCreate.insert states, that the error should not occur:

if (keyHolder != null) {
// assign the key returned by the database to the object's id field after it was inserted
Number key = keyHolder.getKey();
if (key == null) {
// may never happen but let's be careful out there
throw new SQLException("generated-id key was not set by the update call");
}
if (key.longValue() == 0L) {
// sanity check because the generated-key returned is 0 by default, may never happen
throw new SQLException("generated-id key must not be 0 value");
}
assignIdValue(data, key, "keyholder", objectCache);
}

OS: Android
Database: H2-Database 1.4.191
ORM-Lite Version: 4.48

we have this primary key created with an sql-statement:
CREATE MEMORY TABLE IF NOT EXISTS PUBLIC.MISSIONDATA(  ID BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) NOT NULL PRIMARY KEY,  ... )
Reply all
Reply to author
Forward
0 new messages