GreenDao を使用して、どうにかしてデータベースをキーのないエンティティがある状態にすることができました。
私の質問は、このエンティティをクリア/削除するにはどうすればよいですか? 別の列名を削除できる関数が AbstractDao にありませんでした。
GreenDao を使用して、どうにかしてデータベースをキーのないエンティティがある状態にすることができました。
私の質問は、このエンティティをクリア/削除するにはどうすればよいですか? 別の列名を削除できる関数が AbstractDao にありませんでした。
主キーはそれ自体が一意で null ではありません。明示的に (not null().primaryKey()) と言及しても、問題なく動作するはずです。私が間違っているのか、それともgreenDAOに問題があるのか を指摘したいと思います。今後のリリースで問題を解決するための greenDAO からの言葉はありますか?
私はあまり評判がありませんでした。そうでなければ、コメントで尋ねたでしょう。
生の SQL クエリを記述して行を削除し、読み取り可能な DaoSession から取得できる SQLiteDatabase を使用して実行できます。
DELETE FROM YourTable WHERE someColumn=?
タイプミスを避けたい場合は、greendao の tableinformation を使用できます。
String query = "DELETE FROM " + YourDao.TABLENAME +
" WHERE " + YourDao.Properties.SomeColumn.columnName + "=?";
詳細については:
スキーマの作成方法によっては、いくつかの落とし穴があります。
AUTOINCREMENT
とNOT NULL
greendaoで主キーを作成すると、正しく主キーが挿入されません!
自動インクリメントさ0
れた主キーを割り当てる代わりに、テーブルに 2 番目の行を挿入すると、主キーは常に制約違反になります。
したがってnotNull().primaryKey().autoincrement()
、greendao-sourcecode を処理する必要がない場合は、 を使用しないでください。
上のステートメントを使用できるように greendao-core にいくつかの小さな変更を加えましたが、使用するだけであれば、すべてがうまく機能するはずprimaryKey().autoincrement()
です。