0

尝试插入新对象时出现异常。

日志猫:

java.lang.IllegalStateException: Source entity has no ID (should have been put before)  
at io.objectbox.relation.ToMany.internalCheckApplyToDbRequired(ToMany.java:599)

插入功能:

public static void setSyncData(long contactId, SyncerData syncData) {
    final Box<SyncerData> box = getObjectBoxStore().boxFor(SyncerData.class);
    SyncerData syncerData = box.query().equal(SyncerData_.id, contactId).build().findFirst();
    if (syncerData == null) {
        syncerData = new SyncerData();
        syncerData.setPhoneOrIdKey(ContactData.generateId(Phone.EMPTY, contactId));
    }
    syncerData.setSyncerDetailsToMany(syncData.getSyncerDetailsToMany());
    box.put(syncerData);
}

这是什么意思,在添加到对象之前,我不能将新对象 ToMany 列表放入?

4

1 回答 1

0

我认为它与https://github.com/objectbox/objectbox-java/issues/104有关。

本质上,设置与新的普通 List 的关系有些问题,因为 ObjectBox 缺少类中可用的更改跟踪ToMany。我们将看看如何在未来的版本中同步它。

请尝试以下操作:

toMany.clear();
toMany.addAll(newList);
于 2017-11-13T13:36:16.163 回答