我有:
@ForeignCollectionField(eager = false)
private ForeignCollection<Field> fieldCollection;
我希望从来自Web服务的数据中填充此集合,因为我想将此数据插入到我的Sqlite数据库中。
我试着用这个:
boolean accessOnPremiseDb = false;
String description;
@ForeignCollectionField(eager = false)
private ForeignCollection<Entity> entitiyCollection =
new LazyForeignCollection<Entity, Integer>(null, accessOnPremiseDb,
accessOnPremiseDb, null, description, accessOnPremiseDb);
但是我收到了错误
Caused by: java.lang.IllegalStateException: Internal DAO object is null.
Lazy collections cannot be used if they have been deserialized.
如何在没有问题的情况下做到这一点?我应该为此制作新的变量吗?
答案 0 :(得分:4)
...我想从来自Web服务的数据填充此集合,因为我想将此数据插入到我的Sqlite数据库中。
右。序列化错误消息具有误导性。您正在尝试创建外部集合,但无法直接调用构造函数。你应该改为呼叫
dao.assignEmptyForeignCollection(data, "entitiyCollection");
或
data.entitiyCollection = dao.getEmptyForeignCollection("entitiyCollection");
将相应的DAO对象连接到外部集合中。我已经改进了javadoc和错误信息。
https://github.com/j256/ormlite-core/commit/b4037999c21f45c426ce7a83bc759e3ec8335c61