Java Can';我没有空间归还FTS4桌子';rowid';领域在sqlite3命令行中工作良好
因此,我已经完成了创建FTS4表的步骤(我在获取空间方面遇到了问题,因此我在SQLite中创建了FTS4表并将其导入到项目中) 但是,每当我尝试查询数据库时,都会得到一个“预期:…实际:…”错误。以下是错误:Java Can';我没有空间归还FTS4桌子';rowid';领域在sqlite3命令行中工作良好,java,android,database,sqlite,full-text-search,Java,Android,Database,Sqlite,Full Text Search,因此,我已经完成了创建FTS4表的步骤(我在获取空间方面遇到了问题,因此我在SQLite中创建了FTS4表并将其导入到项目中) 但是,每当我尝试查询数据库时,都会得到一个“预期:…实际:…”错误。以下是错误: TableInfo{name='citiesFts', columns={city=Column{name='city', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'
TableInfo{name='citiesFts', columns={city=Column{name='city', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, city_ascii=Column{name='city_ascii', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0, defaultValue='null'}, rowid=Column{name='rowid', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1, defaultValue='null'}}, foreignKeys=[], indices=[]}
Found:
TableInfo{name='citiesFts', columns={city=Column{name='city', type='', affinity='1', notNull=false, primaryKeyPosition=0, defaultValue='null'}, city_ascii=Column{name='city_ascii', type='', affinity='1', notNull=false, primaryKeyPosition=0, defaultValue='null'}}, foreignKeys=[], indices=[]}
在“find”字段中,“rowid”字段没有显示,尽管我请求了它
这是导致错误的查询(位于我的FTS DAO中):
最后,这是citiesFts表的模式:
CREATE VIRTUAL TABLE 'citiesFts' USING FTS4('id', 'city', 'state_name', 'state_id', content='cities')
/* citiesFts(id,city,state_name,state_id) */;
任何帮助都将不胜感激
我可以在我的'CityFTS4'类中省略rowid字段,因为Android开发者文档声明主键字段是可选的,但是每当我尝试忽略它时,就会出现错误
@Fts4(contentEntity = City.class)
@Entity(tableName = "citiesFts")
public class CityFTS4 {
@PrimaryKey
@ColumnInfo(name = "rowid")
public int id;
@ColumnInfo(name = "city")
private final String cityName;
@ColumnInfo(name = "city_ascii")
private final String cityASCII;
public CityFTS4( int id, String cityName, String cityASCII){
this.cityName = cityName;
this.cityASCII = cityASCII;
}
public String getCityName() {
return cityName;
}
public String getCityASCII() {
return cityASCII;
}
CREATE VIRTUAL TABLE 'citiesFts' USING FTS4('id', 'city', 'state_name', 'state_id', content='cities')
/* citiesFts(id,city,state_name,state_id) */;