天天看點

qbc關聯查詢出對象集合,對集合中的對象進行條件過濾

項目中所有的資料都是邏輯删除,在查詢方案下的食譜時,可以在查詢食譜時加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());
        }
    }
           

繼續閱讀