【发布时间】:2018-03-14 11:32:16
【问题描述】:
我想使用 GreenDAO 进行持久化,但我无法让它持久化我的数据。
只要不重新启动应用程序,数据就会被正确保存和加载。
一旦我将应用程序滑开并从头重新打开它,GreenDAO 就看不到以前的数据(无论是在模拟器上还是在真实设备上)。
这是我的实体:
@Entity
public class TestSingleEntity {
@Id(autoincrement = true)
Long id;
int someNumber;
public TestSingleEntity(int someNumber) {
this.someNumber = someNumber;
}
@Generated(hash = 787203968)
public TestSingleEntity(Long id, int someNumber) {
this.id = id;
this.someNumber = someNumber;
}
@Generated(hash = 1371368161)
public TestSingleEntity() {
}
// ... some more stuff
}
这是我将实体插入数据库的方式:
Random rnd = new Random();
TestSingleEntity singleEntity = new TestSingleEntity();
singleEntity.setSomeNumber(rnd.nextInt());
DaoSession session = ((MyApp)getApplication()).getDaoSession();
TestSingleEntityDao dao = session.getTestSingleEntityDao();
dao.insert(singleEntity);
Log.d("tgd", "Inserted an entity with id " + singleEntity.getId());
这就是我阅读它们的方式: 查询查询 = dao.queryBuilder().orderAsc(TestSingleEntityDao.Properties.SomeNumber).build(); StringBuilder builder = new StringBuilder();
List<TestSingleEntity> result = query.list();
Log.d("size", result.size());
for (TestSingleEntity testSingleEntity : result) {
Log.d("entity", testSingleEntity.toString());
}
正如我所说,只要我留在应用程序中(在不同的活动中移动是可以的),每次调用 insert 时,都会创建一个具有新 ID 的新实体。一旦我重新启动应用程序,它就会回到第一格。
设置直接取自GitHub page。我究竟做错了什么?谢谢
【问题讨论】: