【问题标题】:Kotlin and ObjectBox: Relations in Data ClassesKotlin 和 ObjectBox:数据类中的关系
【发布时间】:2017-10-26 11:44:17
【问题描述】:

如何使用 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,但它的构造函数需要我不知道如何创建的第二个参数。

【问题讨论】:

    标签: android objectbox


    【解决方案1】:

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

    @Entity
    data class EntityA(@Id var id: Long) {
        lateinit var entityB: ToOne<EntityB>
    
        constructor(b: EntityB) : this(0) {
            entityB.target = b
        }
    }
    

    【讨论】:

    • 如何使用从 json 反序列化的数据类?我有一个 json,其中有一个属性的值列表,我将该属性反序列化为 List&lt;Foo&gt;,并且我想在 ObjectBox 中使用与 OneToMany 相同的属性。这可能吗?如果没有,是否有一个优雅的解决方法?
    猜你喜欢
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    相关资源
    最近更新 更多