RoomDatabase: не может найти переменную символа _result - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь исследовать мою RoomDatabase с помощью @RawQuery и SupportSQLiteQuery. У меня есть эта ошибка: «не удается найти переменную символа _result» при построении в PropertyDao_Impl. Я уже пробовал CleanProject и Rebuild несколько раз.

У вас есть представление о том, что я делаю неправильно? Заранее спасибо!

import androidx.lifecycle.MutableLiveData
import androidx.room.*
import androidx.sqlite.db.SupportSQLiteQuery
import com.openclassrooms.realestatemanager.add_edit.Property


@Dao
interface PropertyDao {

    @Query("SELECT * FROM Property")
    fun getAllProperties(): LiveData<List<Property>>

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun addProperty(property: Property): Long

    @Query("SELECT * FROM Property WHERE id_property = :id_property")
    suspend fun getPropertyFromId(id_property: String): Property

    @RawQuery(observedEntities = [Property::class])
    fun searchInDatabase(query: SupportSQLiteQuery): MutableLiveData<List<Property>>
}

PropertyDao_Impl. java (генерируется):

@Override
  public MutableLiveData<List<Property>> searchInDatabase(final SupportSQLiteQuery query) {
    final SupportSQLiteQuery _internalQuery = query;
    __db.assertNotSuspendingTransaction();
    final Cursor _cursor = DBUtil.query(__db, _internalQuery, false, null);
    try {
      return _result; // error here
    } finally {
      _cursor.close();
    }
  }
}
implementation "androidx.room:room-runtime:2.2.4"
kapt "androidx.room:room-compiler:2.2.4"

1 Ответ

0 голосов
/ 12 марта 2020

Заменить

@RawQuery(observedEntities = [Property::class])
fun searchInDatabase(query: SupportSQLiteQuery): MutableLiveData<List<Property>>

на

@RawQuery(observedEntities = [Property::class])
fun searchInDatabase(query: SupportSQLiteQuery): LiveData<List<Property>>
...