Erstmalige Implementierung GreenDAO
. Ich habe viele andere Fragen gelesen und ich fühle, dass ich ihnen alle gefolgt bin.GreenDAO respektiert nicht @Einzigartige Felder
Meine einfache Entity:
@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;
}
ich dann die Tabelle einfügen in mit searchTermDao.insertOrReplace(searchTerm)
. Das Problem ist, dass es mehrere Einträge speichert, wo die searchTerm
genau das gleiche ist. Was mache ich falsch?
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;
}
LÖSUNG:
Dank Luiz in den Kommentaren ich die Datenbank bei der Initialisierung nur aktualisiert:
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()
nur benötigt, einmal aufgerufen werden.
Verwenden Sie SQLite oder ORMLite oder etwas anderes? –
Ich habe alles Standard beibehalten, also würde ich SQLite annehmen –