0
第一次執行GreenDAO
。一直在閱讀很多其他問題,我覺得我已經遵循了所有這些問題。GreenDAO不尊重@Unique字段
我簡單的實體:
@Entity(
indexes = {
@Index(value = "searchTerm", unique = true)
}
)
public class SearchTerm
{
@Id private Long id;
// @Unique have also tried this
// @Index(unique = true) have also tried this
private String searchTerm;
private Date date;
}
我然後插入使用searchTermDao.insertOrReplace(searchTerm)
表。問題是它會存儲多個條目,其中searchTerm
完全相同。我究竟做錯了什麼?
private SearchViewQueryTextEvent storeSearchTerm(SearchViewQueryTextEvent queryTextEvent)
{
SearchTerm searchTerm = new SearchTerm();
searchTerm.setSearchTerm(queryTextEvent.queryText().toString());
searchTerm.setDate(new Date());
searchTermDao.insertOrReplace(searchTerm);
Log.d(TAG, "Stored new search term: " + searchTerm.getSearchTerm());
return queryTextEvent;
}
SOLUTION:
由於路易斯在評論我剛剛升級上初始化數據庫:
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(mContext, "search-db");
helper.onUpgrade(helper.getWritableDatabase(), 1, 2);
Database db = helper.getWritableDb();
return new DaoMaster(db).newSession();
.onUpgrade()
只需要調用一次。
你使用SQLite或ORMLite或其他? –
我一直默認所有我會承擔SQLite –