You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否传递完整对象调用Room DAO函数?查询同释义异拼写单词遇阻

问题解答

是的,你确实需要拆分传递mot和defMot两个参数来实现这个查询。

Room的@Query注解不支持直接引用方法参数对象的嵌套属性(比如:mot.defMot这种写法),这就是IDE报错的原因——Room无法解析这种嵌套的属性引用作为查询参数。

被IDE拒绝的代码示例:

@Query("SELECT * FROM mots WHERE defMot = :mot.defMot AND mot <> :mot.mot")
fun allOrtho(mot: Mot): LiveData<List<Mot>>

可行的代码方案:

@Query("SELECT * FROM mots WHERE defMot = :def AND mot <> :mot")
fun allOrtho(mot: String, def: String): LiveData<List<Mot>>

调用这个DAO方法时,你只需要从Mot对象中提取出mot和defMot属性值传入即可,逻辑上和最初的思路一致,只是多了一步参数拆分的操作。

内容的提问来源于stack exchange,提问作者Simon W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 20:42:05