GreenDao は確かに、その daoCore.jar ソースに内部キャッシュ メカニズムを備えています。
キャッシュからエンティティを put() および get() するコードを検索することで、キャッシュを簡単に無効にすることができます。
which is a: HashMap<? extends AbstractDao>.
次に MyDaoCore.jar を生成し、プロジェクトに追加します。
第 2 に、エンティティを (完全に置き換えることなく) 更新または挿入するには、次の疑似コードを実装する必要があります。実際のコードを追加していなくて申し訳ありません。ずっと前に解決しました。
public void insertOrUpdate(List<? extends AbstractDao> entities){
List<Entity> toInsert;
List<Entity> toUpdate;
for (Entity e : entities)
{
if( e.inDatabase() )
toUpdate.add(e);
else
toInsert.add(e);
}
Dao.updateAll(toUpdate);
Dao.insertAll(toInsert);
}
編集 1: IN ステートメントを使用して、次のような 1 つのクエリだけでエンティティのすべての ID を取得できます。
.where(Dao.Properties.Id.in(ids)).build().list();