Kotlin - 在多行查询中注入Android Room SQL语言

Faw*_*ran 18 kotlin android-room

如何才能注入多行查询?它适用于带有Java类的Room,但Kotlin也支持这个吗?

例如,我在这里有2个查询,只有顶级SQL查询(1行)被注入.

我尝试按照本指南中步骤操作但无法找到所需的设置.

https://youtrack.jetbrains.com/issue/KT-13636上存在一个问题,它表明这已得到修复,但我不确定如何实施此修复程序.

ooi*_*ooi 28

你可以使用一个更可读的原始字符串:

@Dao
interface ItemDao {
    @Query("""
        SELECT * FROM Item
        WHERE Item.id = :id
        """)
    fun loadItemById(id: Long): LiveData<Item>
}
Run Code Online (Sandbox Code Playgroud)

  • 我刚刚尝试过,“原始字符串”适用于 Android Studio 3.6.2 和 room 2.2.5。我所说的工作是指 SQL 语法检查和突出显示。其行为与单行 SQL 相同。通过连接分割字符串不会被选中或突出显示。谢谢。 (3认同)
  • 从 Android Studio 4.1.1 及所有最新版本开始,此功能适用于“@Query”,但不适用于“execSQL()” (2认同)