2
我在Android上使用Ormlite並啓用了ObjectCache後,使用UpdateBuilder和ColumnExpression更新表後返回舊數據。我已經閱讀了文檔,並沒有警告在啓用緩存的情況下使用UpdateBuilder。Ormlite ObjectCache返回舊數據
設置表最多隻有1-5行。 updateColumnExpression看起來像一個簡單的方法,只允許其中一個行爲true。
這是預期的行爲?
public void setActiveSetting(String id)
{
try {
UpdateBuilder<Settings, Integer> updateBuilder2 = getHelper().getSettingsDao().updateBuilder();
updateBuilder2.updateColumnExpression("active", "id = " + id);
updateBuilder2.update();
} catch (SQLException e){
e.printStackTrace();
}
}
這是返回過時的數據呼叫:
public List<Settings> getSettings()
{
List<Settings> settings = null;
try {
settings = getHelper().getSettingsDao().queryForAll();
} catch (SQLException e) {
e.printStackTrace();
}
return settings;
}
而設置DAO:
public Dao<Settings, Integer> getSettingsDao()
{
if (null == settingsDao) {
try {
settingsDao = getDao(Settings.class);
settingsDao.setObjectCache(true);
} catch (java.sql.SQLException e) {
e.printStackTrace();
}
}
return settingsDao;
}
禁用ObjectCache不會返回正確的數據,但這個數據是經常提取,所以我想保留它。
感謝
清除緩存工作,感謝您的快速回復。在ORM上做的很棒,我非常喜歡。 –