createOrUpdate
オブジェクトにすでにidフィールドが設定されていない限り、呼び出してはいけません。ORMLite
データベースに存在するかどうかを判断する方法は、IDによるクエリを実行することです。コードは次のことを行います。
ID id = extractId(data);
// assume we need to create it if there is no id <<<<<<<<<<<<<<<<<<<<<<<
if (id == null || !idExists(id)) {
int numRows = create(data);
return new CreateOrUpdateStatus(true, false, numRows);
} else {
int numRows = update(data);
return new CreateOrUpdateStatus(false, true, numRows);
}
これをよりよく説明するために、javadocsを拡張します。彼らはそこで非常に弱いです。ごめん。私はそれらを次のように更新しました:
これは、アイテムが存在しない場合にデータベースにアイテムを作成するための便利な方法です。IDはデータ引数から抽出され、IDによるクエリがデータベースで実行されます。同じIDの行がデータベースに存在する場合、データベースのすべての列がデータパラメータのフィールドから更新されます。idがnull(または0またはその他のデフォルト値)であるか、データベースに存在しない場合、オブジェクトはデータベースに作成されます。これは、データ項目にidフィールドを定義する必要があることも意味します。