ここで同様の質問をしましたが、満足のいく回答が得られなかったので、私の懸念を理解してください:
1. https://stackoverflow.com/questions/14846105/insert-ot-update-using-one-of-the-field-as-key-in-greendao
2. https://stackoverflow.com/questions/14547288/best-way-to-select-row-with-following-scenario-using-greendao
サーバーとクライアントの両方に「TARGET」というテーブルがあります。
ここで、サーバーは MySql、クライアントは Android です。
クライアント部分にgreendaoを使用したかったのですが、次のような複数のタスクがあります。
- いくつかのEMPLOYEE_IDを持つ従業員は、特定の日付の後にサーバーからすべてのターゲットを取得します。現在、クライアント部分にTARGETが存在する場合は更新する必要があり、そうでない場合は挿入する必要があります。これはinsertOrUpdateケースです。
- TARGET_IDを使用して特定のターゲットを削除します。
- TARGET_NAMEを使用して TARGET のリストを取得します。
質問に関するデータ:
TABLE : TARGET
FIELDS: TARGET_ID
TARGET_NAME
EMPLOYEE_ID
DaoExampleGenerator のコードの下で使用: greenDao
を使用して次のシナリオで行を選択する最良の方法は?
private static void addTarget(Schema schema){
Entity target = schema.addEntity("TARGET");
target.addStringProperty("TARGET_ID").primaryKey().autoincrement();
target.addStringProperty("TARGET_NAME");
target.addStringProperty("EMPLOYEE_ID");
}
以下は、私が投稿した質問に対して行ったことです。
1. tDao.insertOrReplaceInTx(tArrayList);
where, tArrayList is ArrayList of TARGET Object.
2. for deleting a target using TARGET_ID, i load all the targets in
ArrayList<TARGET> then check TARGET_ID of each TARGET object. If
the TARGET_ID matches then i use, **tDao.delete(t);**
3. for this also i do the same as (2), i load all the targets then match
the TARGET_NAME, If it matches then i add it to list.
上記の問題ステートメントを実装するための最良の方法を教えてください。greendaoを使用していますか?