0

如何使用 ToOne 关系初始化数据类?例如,我有以下两个数据类:

@Entity
data class EntityA(
    @Id var id: Long,
    var entityB: ToOne<EntityB>
)

@Entity
data class EntityB(
    @Id var id: Long
)

现在,我想像这样初始化 EntityA:

var e = EntityA(1, EntityB())

但是,显然,我不能这样做,因为第二个参数是 ToOne 而不是 EntityB。我试图实例化 ToOne,但它的构造函数需要我不知道如何创建的第二个参数。

4

1 回答 1

4

不要将关系放在主构造函数中。然后您可以使用辅助构造函数来调用toOne.target = entity. 它应该看起来像这样:

@Entity
data class EntityA(@Id var id: Long) {
    lateinit var entityB: ToOne<EntityB>

    constructor(b: EntityB) : this(0) {
        entityB.target = b
    }
}
于 2017-11-03T11:06:55.573 回答