除了Kotlin升级后的顶级声明

时间:2018-08-11 20:47:07

标签: android kotlin android-room

升级Kotlin后,我开始出现以下错误:

  

除了顶级声明。

我需要实现的是一个带有前键的实体。这是我的实现:

@Entity(
    tableName="dogs",
    foreignKeys=@ForeignKey(
            entity=Owner.class, parentColumns="id",
            childColumns="ownerId",
            onDelete=CASCADE),
            indices=@Index(value="ownerId"))
 @TypeConverters(AnimalTypeConverters::class)
 class Dog(
    @PrimaryKey(autoGenerate = false)
    @field:SerializedName("id")
    @field:Expose
    var id: Int,
    @field:SerializedName(value = "ownerId")
    var ownerId: Int,
    @field:SerializedName(value = "name")
    var name: String)

但是在

之后
Dog.class,

消息“除顶级声明外”。出现。

升级之前,一切正常。

谢谢

1 个答案:

答案 0 :(得分:0)

我找到了解决方案!没有太多的信息。

这是修改:

@Entity(
    tableName="dogs",
    foreignKeys=[
        (ForeignKey(
                entity=Owner::class, 
                parentColumns=["id"],
                childColumns=["ownerId"],
                onDelete=CASCADE
                )
        )]
)

最重要的是使用

[]

因此您可以管理多个前键。

感谢和良好的编码!