草庐IT

android - 为什么 Room 实体不适用于 Android 中的不可变属性

我一直在探索Room数据库对象映射库,我发现了一些奇怪的东西。实体数据模型不能具有不可变的属性,如this答案建议。但我查看了google'spersistentexamplewithkotlin,Room也适用于不可变属性。请查看this示例中的数据类。这种行为的原因可能是什么?如果我们可以创建不可变值(val属性),这可能是一个很好的功能,因为这会限制程序员在创建对象后更改唯一标识符,例如id。 最佳答案 这很奇怪,因为我可以使用val为我的所有字段创建我的实体类而不会出现问题@Entity(tableName="repo")d

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

如何注入(inject)多行查询?它适用于带有Java类的Room,但Kotlin也支持吗?例如我这里有2个查询,只有最上面的SQL查询(1行)被注入(inject)。我尝试关注stepsinthisguide但找不到所需的设置。https://youtrack.jetbrains.com/issue/KT-13636存在问题这表明这是已修复的,但我不确定如何实现修复。 最佳答案 您可以使用原始字符串,它无论如何都更具可读性:@DaointerfaceItemDao{@Query("""SELECT*FROMItemWHEREIte

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

如何注入(inject)多行查询?它适用于带有Java类的Room,但Kotlin也支持吗?例如我这里有2个查询,只有最上面的SQL查询(1行)被注入(inject)。我尝试关注stepsinthisguide但找不到所需的设置。https://youtrack.jetbrains.com/issue/KT-13636存在问题这表明这是已修复的,但我不确定如何实现修复。 最佳答案 您可以使用原始字符串,它无论如何都更具可读性:@DaointerfaceItemDao{@Query("""SELECT*FROMItemWHEREIte

android - Kotlin 中的 Room Persistence lib 实现

我正在kotlin中为我的数据库实现实现Room持久性库。以下是我的Entity、Dao和Database类:Food.kt@EntityclassFood(@ColumnInfo(name="food_name")varfoodName:String,@ColumnInfo(name="food_desc")varfoodDesc:String,@ColumnInfo(name="protein")varprotein:Double,@ColumnInfo(name="carbs")varcarbs:Double,@ColumnInfo(name="fat")varfat:Doubl

android - Kotlin 中的 Room Persistence lib 实现

我正在kotlin中为我的数据库实现实现Room持久性库。以下是我的Entity、Dao和Database类:Food.kt@EntityclassFood(@ColumnInfo(name="food_name")varfoodName:String,@ColumnInfo(name="food_desc")varfoodDesc:String,@ColumnInfo(name="protein")varprotein:Double,@ColumnInfo(name="carbs")varcarbs:Double,@ColumnInfo(name="fat")varfat:Doubl

java - 在 Kotlin 中使用 Room 的 @ForeignKey 作为 @Entity 参数

我遇到了一个房间tutorial在类定义中使用@PrimaryKey注释:@Entity(foreignKeys=@ForeignKey(entity=User.class,parentColumns="id",childColumns="userId",onDelete=CASCADE))publicclassRepo{...}现在,我有以下要使用主键的数据类:@Parcel(Parcel.Serialization.BEAN)dataclassFoo@ParcelConstructorconstructor(varstringOne:String,varstringTwo:Stri

java - 在 Kotlin 中使用 Room 的 @ForeignKey 作为 @Entity 参数

我遇到了一个房间tutorial在类定义中使用@PrimaryKey注释:@Entity(foreignKeys=@ForeignKey(entity=User.class,parentColumns="id",childColumns="userId",onDelete=CASCADE))publicclassRepo{...}现在,我有以下要使用主键的数据类:@Parcel(Parcel.Serialization.BEAN)dataclassFoo@ParcelConstructorconstructor(varstringOne:String,varstringTwo:Stri

android - 找不到字段的 setter - 将 Kotlin 与 Room 数据库结合使用

我正在与Room持久性库集成。我在Kotlin中有一个数据类,例如:@Entity(tableName="story")dataclassStory(@PrimaryKeyvalid:Long,valby:String,valdescendants:Int,valscore:Int,valtime:Long,valtitle:String,valtype:String,valurl:String)@Entity和@PrimaryKey注释用于Room库。当我尝试构建时,它失败并出现错误:Error:Cannotfindsetterforfield.Error:Executionfail

android - 找不到字段的 setter - 将 Kotlin 与 Room 数据库结合使用

我正在与Room持久性库集成。我在Kotlin中有一个数据类,例如:@Entity(tableName="story")dataclassStory(@PrimaryKeyvalid:Long,valby:String,valdescendants:Int,valscore:Int,valtime:Long,valtitle:String,valtype:String,valurl:String)@Entity和@PrimaryKey注释用于Room库。当我尝试构建时,它失败并出现错误:Error:Cannotfindsetterforfield.Error:Executionfail

database - Android Room Persistence 库和 Kotlin

我正在尝试使用Kotlin和RoomPersistenceLibrary编写一个简单的应用程序.我关注了thetutorial在Android持久性代码实验室中。这是我在Kotlin中的AppDatabase类:@Database(entities=arrayOf(User::class),version=1)abstractclassAppDatabase:RoomDatabase(){abstractfunuserModel():UserDaocompanionobject{privatevarINSTANCE:AppDatabase?=null@JvmStaticfungetIn