Objectbox: разрешена только одна ссылка @Backlink для каждого отношения - PullRequest
0 голосов
/ 06 апреля 2019

После обновления 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;

Почему я не могу дать ссылку на shoesRelation / что происходит не так?

1 Ответ

1 голос
/ 08 апреля 2019

Ваш класс Атлет имеет две обратные ссылки на 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, а затем явно назовите отношение ToOne, к которому обратные ссылки ToMany относятся:

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