You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
net.zetetic.database.sqlcipher.SQLiteConstraintException thrown if @Upsert is used #23
net.zetetic.database.sqlcipher.SQLiteConstraintException: UNIQUE constraint failed: ProfileData.ownerId (code 1555)
at net.zetetic.database.sqlcipher.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
at net.zetetic.database.sqlcipher.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:815)
at net.zetetic.database.sqlcipher.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:823)
at net.zetetic.database.sqlcipher.SQLiteStatement.executeInsert(SQLiteStatement.java:113)
at androidx.room.EntityInsertionAdapter.insert(EntityInsertionAdapter.kt:51)
at androidx.room.EntityUpsertionAdapter.upsert(EntityUpsertionAdapter.kt:91)
at net.primal.android.profile.db.ProfileDataDao_Impl.upsertAll(ProfileDataDao_Impl.java:165)
.....
It turns out that @Upsert is the cause of the crash. If we replace it with @Insert(onConflict = OnConflictStrategy.REPLACE) everything works fine. PrimalHQ/primal-android-app@a46232a
It's not applicable. Our primary keys are Strings and sometimes two or more String fields. @PrimarKey(autoGenerate = true) can be applied only to ints and longs.
Activity
developernotes commentedon Nov 8, 2023
Hi @AleksandarIlic
Does it work using
@Upsertif you use@PrimaryKey(autoGenerate = true)within your entities?AleksandarIlic commentedon Nov 10, 2023
Hi @developernotes,
It's not applicable. Our primary keys are Strings and sometimes two or more String fields.
@PrimarKey(autoGenerate = true)can be applied only to ints and longs.