当前位置: 首页 > 知识库问答 >
问题:

Android Room:“查询中的每个绑定变量必须有匹配的方法参数”

韶弘壮
2023-03-14

我正在使用android的房间数据库。在我最近更新到静态编程语言1.7.0之前,它一直运行良好。现在我得到以下错误:

Each bind variable in the query must have a matching method parameter. Cannot find method parameters for :limit, :offset.

这是我的刀:

@Query("SELECT * FROM eventdata ORDER BY id ASC LIMIT :limit OFFSET :offset")
fun allEvents(limit: Int, offset: Int): List<EventData>

这是我的身材

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
.
.
.
implementation "androidx.room:room-runtime:2.4.2"
kapt "androidx.room:room-compiler:2.4.2"

当我将Kotlin降级到1.6.21时,它运行良好。这是科特林病毒还是我做错了什么?

共有1个答案

白星海
2023-03-14

将“androidx.room…”升级到2.4.3对我很有效

 类似资料:
  • 我正在使用带有静态编程语言的android持久性库。 Dao看起来像这样 这对我来说似乎很好,但我得到了这个错误 错误:查询中的每个绑定变量必须有一个匹配的方法参数。找不到:countryId的方法参数 我可以看到参数被命名为,那么可能是什么问题呢? 仅供参考:这是CountryDao_I生成的代码mpl.java 在这种方法中,我看到arg0在方法中的任何地方都没有使用。 编辑:这似乎在新插件中

  • 我得到这个错误: 当尝试像这样的Room和静态编程语言时: 但我正在传递并使用这个参数。有人知道问题是什么,或者能给我举个例子,让我看看和科特林一起使用房间的情况吗?

  • 我试图创建一个弹性搜索查询,它必须匹配单独字段上的三个查询之一,并且还有一个额外的查询,而不是需要匹配的。执行bool查询和Must子句的问题是,它必须匹配所有3个,而使用'应该'时,它并不总是匹配所需的,除非使用minimum_should_match设置为2。在这种情况下,由于最小匹配,它在匹配3个必需文档之一的文档上不匹配。 我当前的查询是这样的(对不起,这里没有代码) 我也尝试了以下方法,

  • 我想要找到一个文件的名称包含'Bob',并有一个位置在'paducah'或'smyrna'。 以下是我现在所拥有的: 我知道问题出在location数组上,因为如果我将它改为一个没有数组的元素,那么查询就可以正常工作。 这是我能找到的最接近的答案。 它没有工作,我收到以下错误: [term]查询格式错误,应为[END_OBJECT],但找到[FIELD_NAME]

  • 我不明白为什么我会得到这样的错误:“prepared Statement中的变量数不匹配参数数”。 我的代码如下所示:

  • 问题内容: 使用Doctrine 2,我想让一些用户成为另一个用户的联系人。该表包含这些用户之间的映射。函数中的查询将返回以下错误: 参数编号无效:绑定变量的数量与令牌的数量不匹配。 但是,据我所知,它设置为“ b”,设置为“ 2”,两者均由该功能分配。 问题答案: 不要在查询文本中用引号将任何参数引起来! 应该