gpt4 book ai didi

java - generatedId = true 的 getDao 异常

转载 作者:行者123 更新时间:2023-11-29 06:32:25 25 4
gpt4 key购买 nike

我想在不为新记录提供 ID 的情况下将记录插入到我的 sqlite 数据库中。所有 ID 都应自动生成。

因此,id 列定义为:

//primary key
@DatabaseField(id = true, columnName = C_ID,generatedId = true)
private int cID;

但是获取dao时抛出异常:

Java.lang.IllegalArgumentException: Must specify one of id, generatedId, and generatedIdSequence with cID at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2356) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418) at android.app.ActivityThread.access$900(ActivityThread.java:154) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5293) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) Caused by: java.lang.IllegalArgumentException: Must specify one of id, generatedId, and generatedIdSequence with cID at com.j256.ormlite.field.FieldType.(FieldType.java:201) at com.j256.ormlite.table.DatabaseTableConfig.convertFieldConfigs(DatabaseTableConfig.java:236) at com.j256.ormlite.table.DatabaseTableConfig.extractFieldTypes(DatabaseTableConfig.java:101) at com.j256.ormlite.dao.BaseDaoImpl.initialize(BaseDaoImpl.java:153) at com.j256.ormlite.dao.BaseDaoImpl.(BaseDaoImpl.java:128) at com.j256.ormlite.dao.BaseDaoImpl.(BaseDaoImpl.java:119) at com.j256.ormlite.dao.BaseDaoImpl$5.(BaseDaoImpl.java:921) at com.j256.ormlite.dao.BaseDaoImpl.createDao(BaseDaoImpl.java:921) at com.j256.ormlite.dao.DaoManager.createDao(DaoManager.java:72) at com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper.getDao(OrmLiteSqliteOpenHelper.java:279)

我真的不明白如何解决这个问题?此处抛出异常:

public Dao<Countries, Integer> getCountryDao()
{
if (null == countryDao)
{
try
{
countryDao = getDao(Countries.class); <---Exception
}
catch (java.sql.SQLException e)
{
e.printStackTrace();
}
}
return countryDao;
}
}

这个有效:

//primary key
@DatabaseField(id = true, canBeNull = false, columnName = C_ID)
private int cID;

Bu 我需要在插入新记录时提供 ID。怎么了?

最佳答案

idgeneratedId 不能一起工作。使用

@DatabaseField(generatedId = true, allowGeneratedIdInsert = true)

使用您的列名称。

关于java - generatedId = true 的 getDao 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29894963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com