Используя Джексона с Retrofit, я хотел, чтобы список друзей был установлен на friendToMany
во время десериализации.Как я уже говорил с документацией, мы должны вручную назначить эту сущность для boxstore, когда установлен assignable=true
.Итак, я делаю так (как показано в коде).Этот подход работает только для первого элемента, частью которого является этот код.Он не работает для элемента 2 и далее.
@Id(assignable = true)
@JsonProperty("_id")
public long id;
@Transient
private List<Friend> friends = null;
@JsonIgnore
@Backlink(to = "demoResponseToOne")
ToMany<Friend> friendToMany;
@JsonProperty("friends")
public void setFriends(
List<Friend> friends)
{
this.friends = friends;
for (Friend friend : friends)
{
MyApplication.getBoxStore().boxFor(Friend.class).attach(friend);
friendToMany.add(friend);
}
}
Исключение составляет: io.objectbox.exception.DbDetachedException: Cannot resolve relation for detached entities, call box.attach(entity) beforehand.
во время add(friend)
.Я имею в виду, что это работает, когда этот корневой элемент является первым элементом списка.