Ormlite でテーブル sqlite_sequence を更新するには? 更新シーケンスが必要です。ORMLite を介してそのテーブルを取得するにはどうすればよいですか?
編集
これを行うための ORLite ツールが見つからないため、代わりに単純な sqlite クエリを使用します。私のクラスでは OrmLiteSqliteOpenHelper を拡張し、SQLiteDatabase を使用してその更新を行います。
EDIT2 ;)
私のプロジェクトでは、クラス Lesson とクラス WeekDefinition を永続化します。
class Lesson{
@DatabaseField(generatedId=true)
private int id;
...
}
class WeekDefinitions{
@DatabaseField(generatedId=true)
private int id;
@DatabaseField(foreign=true, columnName="lesson_id")
private Lesson lesson;
...
}
これで、新しいレッスンを追加すると、id がインクリメントされます。例えば
id = 1 Math
id = 2 English
id = 3 Medicine
そしてweekDefinitionで:
id = 1 lesson_id = 1 nr = 20
id = 2 lesson_id = 1 nr = 22
id = 3 lesson_id = 2 nr = 32
...
id = 12 lesson_id = 3 nr = 3
SQLite は、この行を sqlite_sequence に追加します ( autoincrement を使用する場合)
rowId = 1 name = lesson seq = 3
rowId = 2 name = weekDefinition seq = 12
ここで、Lesson テーブルと WeekDefinition テーブルからすべての行を削除します。その後、Lesson と WeekDef は空になりますが、sqlite_sequence は同じままです。テーブルレッスンのIDは値4から始まるため、これは問題です(レッスンのsqlite_sequenceからのseqと1を追加):
id = 4 Math
id = 5 English
id = 6 Medicine
と週定義
id = 13 lesson_id = 1 nr = 20
id = 14 lesson_id = 1 nr = 22
id = 15 lesson_id = 2 nr = 32
レッスン id = 4 の場合、Math は weekDefinitios を取得する必要がありますが、weekDefinitions では、lesses_id の値は 1 から 3 までしかありません。これが私の問題です。sqlite_sequence テーブルを「リセット」する必要があります (または、より良い解決策がありますか?)