使用杰克逊配合翻新,我想在反序列化期间将朋友列表设置为friendToMany
。在阅读文档时,我们必须在设置assignable=true
时手动将该实体分配给boxstore。因此,我正在这样做(如代码所示)。此方法仅适用于此代码所属的第一项。它不适用于元素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)
。我的意思是,当此Root元素是列表的第一项时,此方法有效。
答案 0 :(得分:0)
您还需要将View in metrics
附加到Average
上,后者拥有要修改的Box<Friend>
:
this
背景:如果您使用的是ToMany
,则需要注意一些ObjectBox通常会为您做的事情。这包括在修改任何MyApplication.getBoxStore().boxFor(Friend.class).attach(this);
之前附加@Id(assignable = true)
。
来源: https://docs.objectbox.io/relations#updating-tomany https://docs.objectbox.io/advanced/object-ids#self-assigned-object-ids