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 –