除了 Kotlin 升级后的顶级声明
Excepting a top level declaration after Kotlin upgrade
升级 Kotlin 后,我开始收到以下错误:
Excepting a top level declaration.
我需要实现的是一个带有外键的实体。这是我的实现:
@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,
消息 "Excepting a top level declaration." 出现。
升级前一切正常。
谢谢
我找到了解决办法!关于它的信息不多。
这是修改:
@Entity(
tableName="dogs",
foreignKeys=[
(ForeignKey(
entity=Owner::class,
parentColumns=["id"],
childColumns=["ownerId"],
onDelete=CASCADE
)
)]
)
最重要的是使用
[]
因此您可以管理多个外键。
谢谢,写得很好!
升级 Kotlin 后,我开始收到以下错误:
Excepting a top level declaration.
我需要实现的是一个带有外键的实体。这是我的实现:
@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,
消息 "Excepting a top level declaration." 出现。
升级前一切正常。
谢谢
我找到了解决办法!关于它的信息不多。
这是修改:
@Entity(
tableName="dogs",
foreignKeys=[
(ForeignKey(
entity=Owner::class,
parentColumns=["id"],
childColumns=["ownerId"],
onDelete=CASCADE
)
)]
)
最重要的是使用
[]
因此您可以管理多个外键。
谢谢,写得很好!