コードにクエリがあり、1つのオブジェクトで複数のIDを検索します。表には、 (外部キー)、(外部キー)、および。PreparationPhytoterapic
のフィールドが含まれています。問題は、に複数のエントリが含まれている場合、リストに再度追加されることです。phytoterapicItem_id
preparationItem_id
id
preparationItem_id
使ってみif(!listPreparations.contains(preparationContents2.get(0)))
ましたがうまくいきません。
何か案が?
preparationphytoterapicDao = getHelper().getPreparationPhytoterapicDao();
QueryBuilder<PreparationPhytoterapic, Integer> queryBuilder2 =
preparationphytoterapicDao.queryBuilder();
Where<PreparationPhytoterapic, Integer> where2 = queryBuilder2.where();
SelectArg selectArg = new SelectArg();
where2.eq("phytoterapicItem_id", selectArg);
PreparedQuery<PreparationPhytoterapic> preparedQuery2 = queryBuilder2.prepare();
List<PreparationPhytoterapic> preparationphytoterapics;
QueryBuilder<PreparationContent, Integer> queryBuilder3 =
preparationContentDao.queryBuilder();
Where<PreparationContent, Integer> where3 = queryBuilder3.where();
SelectArg selectArg2 = new SelectArg();
where3.eq("id", selectArg2);
PreparedQuery<PreparationContent> preparedQuery3 = queryBuilder3.prepare();
List<PreparationContent> preparationContents2;
for(int j = 0; j < listPhytoterapics.size(); j++) {
selectArg.setValue(listPhytoterapics.get(j).getPhytoterapicItem().getId());
preparationphytoterapics = preparationphytoterapicDao.query(preparedQuery2);
if(preparationphytoterapics.size() != 0) {
for(int k = 0; k < preparationphytoterapics.size(); k++) {
selectArg2.setValue(preparationphytoterapics.get(k).getPreparationItem().getId());
preparationContents2 = preparationContentDao.query(preparedQuery3);
if(!listPreparations.contains(preparationContents2.get(0)))
listPreparations.add(preparationContents2.get(0));
}
}