4

GreenDao を使用して、どうにかしてデータベースをキーのないエンティティがある状態にすることができました。

私の質問は、このエンティティをクリア/削除するにはどうすればよいですか? 別の列名を削除できる関数が AbstractDao にありませんでした。

4

2 に答える 2

0

主キーはそれ自体が一意で null ではありません。明示的に (not null().primaryKey()) と言及しても、問題なく動作するはずです。私が間違っているのか、それともgreenDAOに問題があるのか​​ を指摘したいと思います。今後のリリースで問題を解決するための greenDAO からの言葉はありますか?

私はあまり評判がありませんでした。そうでなければ、コメントで尋ねたでしょう。

于 2014-10-28T11:31:18.033 に答える
0

生の SQL クエリを記述して行を削除し、読み取り可能な DaoSession から取得できる SQLiteDatabase を使用して実行できます。

DELETE FROM YourTable WHERE someColumn=?

タイプミスを避けたい場合は、greendao の tableinformation を使用できます。

String query = "DELETE FROM " + YourDao.TABLENAME +
               " WHERE " + YourDao.Properties.SomeColumn.columnName + "=?";

詳細については:

スキーマの作成方法によっては、いくつかの落とし穴があります。

AUTOINCREMENTNOT NULLgreendaoで主キーを作成すると、正しく主キーが挿入されません!

自動インクリメントさ0れた主キーを割り当てる代わりに、テーブルに 2 番目の行を挿入すると、主キーは常に制約違反になります。

したがってnotNull().primaryKey().autoincrement()、greendao-sourcecode を処理する必要がない場合は、 を使用しないでください。

上のステートメントを使用できるように greendao-core にいくつかの小さな変更を加えましたが、使用するだけであれば、すべてがうまく機能するはずprimaryKey().autoincrement()です。

于 2013-11-08T15:06:38.330 に答える