Комната – не знаю, как преобразовать курсор в тип возвращаемого значения этого метода (java.lang.Object). ⇐ Android
-
Anonymous
Комната – не знаю, как преобразовать курсор в тип возвращаемого значения этого метода (java.lang.Object).
Я создаю проект с помощью Room и у меня есть следующие коды:
Для моего класса сущности:
import androidx.room.ColumnInfo импортировать androidx.room.Entity импортировать androidx.room.PrimaryKey @Entity("совпадает") класс данных MatchEntity( @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") val id: Int, @ColumnInfo(name = "name") val name: String, @ColumnInfo(name = "city") val city: String, @ColumnInfo(name = «расстояние») val расстояние: Int, @ColumnInfo(name = "description") val описание: строка, @ColumnInfo(name = "score") Оценка значения: Int, @ColumnInfo(name = "age") val age: Int, @ColumnInfo(name = "body_type") val bodyType: BodyType, @ColumnInfo(name = "height") val height: Float, @ColumnInfo(name = "diet") val Diet: DietType, @ColumnInfo(name = "zodiac_sign") val zodiacSign: ZodiacSign, @ColumnInfo(name = "religion") val религия: Религия, @ColumnInfo(name = "drinking_habit") val DrinkingHabit: DrinkingHabit, @ColumnInfo(name = "smoking_habit") val SmokeHabit: SmokeHabit, @ColumnInfo(name = "mbti_type") val mbtiType: MbtiType, @ColumnInfo(name = "эннеаграмма") val эннеаграмма: Эннеаграмма, @ColumnInfo(name = "kids_type") val KidsType: KidsType, )
Для моего класса DAO:
@Dao интерфейс МатчДао { @Insert(onConflict = OnConflictStrategy.REPLACE) приостановить забавную вставку (matchEntity: MatchEntity): Long @Обновлять приостановить забавное обновление (matchEntity: MatchEntity): Int @Удалить приостановить развлечение удалить (matchEntity: MatchEntity) @Query("ВЫБРАТЬ * ИЗ совпадений") приостановить веселье getAll(): List @Query("SELECT * FROM соответствует WHERE id = :id") приостановить веселье getById(id: Int): List }
Для моего класса RoomDatabase:
@Suppress("TooManyFunctions") @База данных( сущности = [ MatchEntity::класс, MatchIceBreakerEntity::класс, MatchInterestEntity::класс, MatchScheduleEntity::класс, MatchSocialEntity::класс, MatchStoryEntity::класс, UserEntity::класс, UserIceBreakerEntity::класс, UserInterestEntity::класс, UserSocialEntity::класс, UserStoryEntity::класс ], экспортная схема = ложь, версия = 1 ) @TypeConverters( BodyTypeConverter::класс, DietTypeConverter::класс, DrinkingHabitConverter::класс, ЭннеаграммКонвертер::класс, KidsTypeConverter::класс, MbtiTraitConverter::класс, MbtiTypeConverter::класс, ReligionConverter::класс, SleepingHabitConverter::класс, SmokeHabitConverter::класс, СоциальныйКонвертер::класс, SocialMediaFrequencyConverter::класс, WorkoutTypeConverter::класс, ZodiacSignConverter::класс ) абстрактный класс WingmanDatabase : RoomDatabase() { абстрактное развлечение matchDao(): MatchDao абстрактное развлечение matchIceBreakerDao(): MatchIceBreakerDao абстрактное развлечение matchInterestDao(): MatchInterestDao абстрактное развлечение matchScheduleDao(): MatchScheduleDao абстрактное развлечение matchSocialDao(): MatchSocialDao абстрактное развлечение matchStoryDao(): MatcStoryDao абстрактное развлечение userDao(): UserDao абстрактное развлечение userIceBreakerDao(): UserIceBreakerDao абстрактное развлечение userInterestDao(): UserInterestDao абстрактное развлечение userSocialDao(): UserSocialDao абстрактное веселье userStoryDao(): UserStoryDao сопутствующий объект { const val DATABASE_NAME: String = "wingman_db" } }
Для моих зависимостей:
плагины { ... идентификатор 'котлин-капт' } ... андроид { ... компиляцияварианты { исходная совместимость JavaVersion.VERSION_1_8 целевая совместимость JavaVersion.VERSION_1_8 } котлинОпции { jvmTarget = '1,8' } ... зависимости { ... защита room_version = "2.5.1" реализация "androidx.room:room-runtime:$room_version" реализация "androidx.room:room-ktx:$room_version" kapt "androidx.room:room-compiler:$room_version" }
Для моих плагинов build.gradle:
плагины { id 'com.android.application' версии '8.0.1' применить false id 'com.android.library' версии '8.0.1' применить false идентификатор «androidx.navigation.safeargs» версии «2.5.3» применить ложь идентификатор «org.jetbrains.kotlin.android» версии «1.9.0-бета» применить ложь }
Я много раз работал с Room, но на этот раз почему-то получаю вот такую ошибку:
C:\Users\Leona\workspace\wingman\app\build\tmp\kapt3\stubs\debug\com\hikarisource\wingman\data\local\dao\MatchDao.java:27: ошибка: Не знаю, как преобразовать курсор в тип возвращаемого значения этого метода (java.lang.Object). публичный абстрактный java.lang.Object getAll(@org.jetbrains.annotations.NotNull
C:\Users\Leona\workspace\wingman\app\build\tmp\kapt3\stubs\debug\com\hikarisource\wingman\data\local\dao\MatchDao.java:28: ошибка: запрос Параметры метода должны быть либо типом, который можно преобразовать в столбец базы данных, либо списком/массивом, содержащим такой тип. Для этого вы можете рассмотреть возможность добавления адаптера типа. kotlin.coroutines.Продолжение
Я создаю проект с помощью Room и у меня есть следующие коды:
Для моего класса сущности:
import androidx.room.ColumnInfo импортировать androidx.room.Entity импортировать androidx.room.PrimaryKey @Entity("совпадает") класс данных MatchEntity( @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") val id: Int, @ColumnInfo(name = "name") val name: String, @ColumnInfo(name = "city") val city: String, @ColumnInfo(name = «расстояние») val расстояние: Int, @ColumnInfo(name = "description") val описание: строка, @ColumnInfo(name = "score") Оценка значения: Int, @ColumnInfo(name = "age") val age: Int, @ColumnInfo(name = "body_type") val bodyType: BodyType, @ColumnInfo(name = "height") val height: Float, @ColumnInfo(name = "diet") val Diet: DietType, @ColumnInfo(name = "zodiac_sign") val zodiacSign: ZodiacSign, @ColumnInfo(name = "religion") val религия: Религия, @ColumnInfo(name = "drinking_habit") val DrinkingHabit: DrinkingHabit, @ColumnInfo(name = "smoking_habit") val SmokeHabit: SmokeHabit, @ColumnInfo(name = "mbti_type") val mbtiType: MbtiType, @ColumnInfo(name = "эннеаграмма") val эннеаграмма: Эннеаграмма, @ColumnInfo(name = "kids_type") val KidsType: KidsType, )
Для моего класса DAO:
@Dao интерфейс МатчДао { @Insert(onConflict = OnConflictStrategy.REPLACE) приостановить забавную вставку (matchEntity: MatchEntity): Long @Обновлять приостановить забавное обновление (matchEntity: MatchEntity): Int @Удалить приостановить развлечение удалить (matchEntity: MatchEntity) @Query("ВЫБРАТЬ * ИЗ совпадений") приостановить веселье getAll(): List @Query("SELECT * FROM соответствует WHERE id = :id") приостановить веселье getById(id: Int): List }
Для моего класса RoomDatabase:
@Suppress("TooManyFunctions") @База данных( сущности = [ MatchEntity::класс, MatchIceBreakerEntity::класс, MatchInterestEntity::класс, MatchScheduleEntity::класс, MatchSocialEntity::класс, MatchStoryEntity::класс, UserEntity::класс, UserIceBreakerEntity::класс, UserInterestEntity::класс, UserSocialEntity::класс, UserStoryEntity::класс ], экспортная схема = ложь, версия = 1 ) @TypeConverters( BodyTypeConverter::класс, DietTypeConverter::класс, DrinkingHabitConverter::класс, ЭннеаграммКонвертер::класс, KidsTypeConverter::класс, MbtiTraitConverter::класс, MbtiTypeConverter::класс, ReligionConverter::класс, SleepingHabitConverter::класс, SmokeHabitConverter::класс, СоциальныйКонвертер::класс, SocialMediaFrequencyConverter::класс, WorkoutTypeConverter::класс, ZodiacSignConverter::класс ) абстрактный класс WingmanDatabase : RoomDatabase() { абстрактное развлечение matchDao(): MatchDao абстрактное развлечение matchIceBreakerDao(): MatchIceBreakerDao абстрактное развлечение matchInterestDao(): MatchInterestDao абстрактное развлечение matchScheduleDao(): MatchScheduleDao абстрактное развлечение matchSocialDao(): MatchSocialDao абстрактное развлечение matchStoryDao(): MatcStoryDao абстрактное развлечение userDao(): UserDao абстрактное развлечение userIceBreakerDao(): UserIceBreakerDao абстрактное развлечение userInterestDao(): UserInterestDao абстрактное развлечение userSocialDao(): UserSocialDao абстрактное веселье userStoryDao(): UserStoryDao сопутствующий объект { const val DATABASE_NAME: String = "wingman_db" } }
Для моих зависимостей:
плагины { ... идентификатор 'котлин-капт' } ... андроид { ... компиляцияварианты { исходная совместимость JavaVersion.VERSION_1_8 целевая совместимость JavaVersion.VERSION_1_8 } котлинОпции { jvmTarget = '1,8' } ... зависимости { ... защита room_version = "2.5.1" реализация "androidx.room:room-runtime:$room_version" реализация "androidx.room:room-ktx:$room_version" kapt "androidx.room:room-compiler:$room_version" }
Для моих плагинов build.gradle:
плагины { id 'com.android.application' версии '8.0.1' применить false id 'com.android.library' версии '8.0.1' применить false идентификатор «androidx.navigation.safeargs» версии «2.5.3» применить ложь идентификатор «org.jetbrains.kotlin.android» версии «1.9.0-бета» применить ложь }
Я много раз работал с Room, но на этот раз почему-то получаю вот такую ошибку:
C:\Users\Leona\workspace\wingman\app\build\tmp\kapt3\stubs\debug\com\hikarisource\wingman\data\local\dao\MatchDao.java:27: ошибка: Не знаю, как преобразовать курсор в тип возвращаемого значения этого метода (java.lang.Object). публичный абстрактный java.lang.Object getAll(@org.jetbrains.annotations.NotNull
C:\Users\Leona\workspace\wingman\app\build\tmp\kapt3\stubs\debug\com\hikarisource\wingman\data\local\dao\MatchDao.java:28: ошибка: запрос Параметры метода должны быть либо типом, который можно преобразовать в столбец базы данных, либо списком/массивом, содержащим такой тип. Для этого вы можете рассмотреть возможность добавления адаптера типа. kotlin.coroutines.Продолжение
Мобильная версия