对象框:每个关系只允许一个@Backlink

时间:2019-04-06 08:24:46

标签: objectbox

将Objectbox从2.2版更新到2.3.4后,在构建应用程序时收到以下消息:

错误:[ObjectBox]'Athlete.shoesRelation'每个关系仅允许一个@Backlink。删除除一个@Backlink以外的所有内容。

代码运动员课程:

@Transient @Expose
private List<Club> clubs;
@Transient @Expose
private List<Gear> bikes;
@Transient @Expose
private List<Gear> shoes;

@Backlink @Expose(deserialize = false, serialize = false)
public ToMany<Club> clubsRelation;
@Backlink @Expose(deserialize = false, serialize = false)
public ToMany<Gear> bikesRelation;
@Backlink @Expose(deserialize = false, serialize = false)
public ToMany<Gear> shoesRelation;

Code Gear类:

@Transient @Expose
private Athlete athlete;
@Expose(deserialize = false, serialize = false)
private ToOne<Athlete> athleteRelation;

为什么我不能反向链接shoesRelations /出了什么问题?

1 个答案:

答案 0 :(得分:1)

您的运动员班在ToOne<Athlete> athleteRelation中有两个指向Gear的反向链接:

@Backlink
public ToMany<Gear> bikesRelation;
@Backlink
public ToMany<Gear> shoesRelation;

从不支持此功能,我们在2.3.0中对此添加了显式检查。 https://github.com/objectbox/objectbox-java/issues/467

要么删除其中一个ToMany,要么添加另一个ToOne,然后将ToMany反向链接的ToOne关系明确命名为:

@Backlink(to = "<TODO>")
public ToMany<Gear> bikesRelation;
@Backlink(to = "athleteRelation")
public ToMany<Gear> shoesRelation;