gpt4 book ai didi

android - 房间 - SQLiteLog : (1) too many SQL variables

转载 作者:太空宇宙 更新时间:2023-11-03 13:09:12 26 4
gpt4 key购买 nike

我有一个包含大约 10,000 条记录的表。

例如,我有以下实体:

@Entity(tableName="cupcakes")
public class CupcakeEntity {

@PrimaryKey(autoGenerate = true)
@ColumnName(name = "id")
long id;

@ColumnName(name = "name")
String name;

@ColumnName(name = "parent_id")
Long parentId;
}

然后,我自己将 CupcakeEntity 加入到这个类中:

public class CupcakeModel {

@Embedded
CupcakeEntity cupcake;

@Relation(parentColumn = "id", entityColumn = "parent_id")
List<CupcakeEntity> parent;
}

当我使用 SQL 语句获取 CupcakeModel 时:

SELECT * FROM cupcakes WHERE name LIKE '%' || :关键字|| '%'

查询将抛出异常:

too many SQL variables (code 1): , while compiling: 
SELECT id,name,parent_id FROM `cupcakes` WHERE parent_id IN
(?,?,?,?...............................

我查看了 Room 的生成代码,发现它正在为所有实体循环。

除了创建我自己的 JOIN 语句之外,还有其他解决方法吗?

最佳答案

我会在这里留下这个答案,以防有人遇到这个问题。

按照@CommonsWare 的建议,我在我的查询中添加了一个LIMIT,现在看起来像:

SELECT * FROM cupcakes WHERE name LIKE '%' || :关键字|| '%' 限制 500

此变通方法归功于@CommonsWare。

关于android - 房间 - SQLiteLog : (1) too many SQL variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49919118/

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