Kotlin和ObjectBox:数据类中的关系

我怎样才能初始化一个数据类与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,但其构造函数想要第二个参数,我不知道如何创建。

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

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