将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 /出了什么问题?
答案 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;