android - ORMLite无法在Android中使用唯一的组合创建行

标签 android sqlite ormlite

这是我定义的表字段:

@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/

相关文章:

ios - 无法在文档目录的子文件夹中创建 sqlite 数据库

python - 使用 Peewee ORM 从行到列

android - ORMLite 和惰性集合的问题

android - 如何将 ORMLite 与抽象类一起使用?

android - 自定义 Android Facebook 登录按钮

Android Eclipse,两个不同选项卡中的两个 Activity ,不断调用 onCreate()!

java - 应用内购买后禁用广告

javascript - Phonegap 重启加速度计

sql - 我正在查询一个表,但我需要不同列中的输出

android - OrmLite Android DatabaseHelper 使用