項目中所有的資料都是邏輯删除,在查詢方案下的食譜時,可以在查詢食譜時加qbc條件進行過濾,對于食譜下的食譜詳情需要将未删除的食譜查出後,對食譜的集合進行疊代,然後将不符合的食譜詳情移除。代碼如下:
//根據系統方案id查詢方案的食譜
import java.util.Iterator;
@Override
public List<SystemSchemeRecipes> findBySystemSchemeIdAndStatus(Integer systemSchemeId) {
try {
Criteria criteria = dao.createCriteria();
criteria.add((Restrictions.eq("scheme.sysSchemeId", systemSchemeId)));
criteria.add((Restrictions.eq("recipesStatus", )));
//查詢出的所有的未删除的食譜集合
List<SystemSchemeRecipes> recippesList1 =criteria.list();
if (recippesList1.size() > ) {
for (int i = ; i < recippesList1.size(); i++) {
//将查出的食譜詳情集合放入疊代器中,進行周遊,判斷如果狀态為删除,則将其從傳回集合中移除
Iterator<SystemSchemeRecipesInfo> iter = recippesList1.get(i).getSystemschemeRecipesInfos().iterator();
while (iter.hasNext()) {
if (iter.next().getRecipesStatus() != ) {
iter.remove();
}
}
}
}
return recippesList1;
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
throw new BasicRuntimeException(this, "根據系統方案id查詢方案的食譜異常"
+ e.getMessage());
}
}