我有一个单词表,其中包含单词及其定义。
类是Mot,单词是Mot.mot(主键),它的定义是Mot.defMot。
我想找到与我的单词具有相同定义(但拼写不同)的所有单词。我的第一个计划是编写一个 Dao 函数,将 mot 作为对象传递,以查找具有相同定义的所有单词(相同 mot.defMot 但不同 mot.mot)。
但是在 SQLite 查询中使用对象成员会被 IDE 拒绝。唯一的方法似乎是传递两个参数(mot,defMot)并将它们用于查询。
有人可以证实吗?
拒绝表格(第一个点是波浪形红色下划线):
@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>>
你可以拥有/使用类似的东西:-
@Query("SELECT * FROM mots WHERE defMot = :def AND mot <> :mot")
fun allOrtho(mot: String, def: String): LiveData<List<Mot>>
结合:-
@Query("") /* not really needed */
fun allOrthoMain(mot: Mot): LiveData<List<Mot>> {
return allOrtho(mot.mot,mot.defMot)
}