这是我定义的表字段:
@DatabaseField(uniqueCombo = true, columnName = COLUMN_NAME_FEED_PROVIDER_TYPE, canBeNull = false)
private int mFeedProviderType;
@DatabaseField(uniqueCombo = true, columnName = COLUMN_NAME_FEED_PROVIDER_SUB_TYPE)
private String mSubType;
@DatabaseField(columnName = COLUMN_NAME_DATE, canBeNull = false)
private long mDate;
我设法添加1行。但是,当我这次尝试添加第二行来更改mSubType String字段时,它将抛出并且除外:
at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
at com.j256.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:135)
at com.j256.ormlite.stmt.StatementExecutor.create(StatementExecutor.java:450)
at com.j256.ormlite.dao.BaseDaoImpl.create(BaseDaoImpl.java:310)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
at com.j256.ormlite.misc.SqlExceptionUtil.create(SqlExceptionUtil.java:22)
at com.j256.ormlite.android.AndroidDatabaseConnection.insert(AndroidDatabaseConnection.java:169)
at com.j256.ormlite.stmt.mapped.MappedCreate.insert(MappedCreate.java:91)
at com.j256.ormlite.android.AndroidDatabaseConnection.insert(AndroidDatabaseConnection.java:155)
最佳答案
即使您使用uniqueCombo,也需要一个id。因此添加如下的generateId注释:
@DatabaseField(generatedId = true)
private int _id;//主键id
关于android - ORMLite无法在Android中使用唯一的组合创建行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26118304/