您的位置:首页 > 其它

将 左外连接 后查询的对象 转成自定义对象

2016-06-13 14:47 369 查看
 
将 左外连接 后查询的对象 转成自定义对象
 
 
@Override
         public List<TempProductAttributeInfoEntity>getAttributeInfoByProductId(String productIds,String productCategoryId) {
            List<TempProductAttributeInfoEntity>tempProductAttributeInfoEntities =
new ArrayList<>();
            List<String> objAttrIdList = newArrayList<>();
            List<String> prodAttrIdList = newArrayList<>();
            StringBuilder pSB = new StringBuilder();
           ProductCategoryEntity productCategoryEntity =
this
.getEntity(ProductCategoryEntity.class,productCategoryId);
           
            String[]productAttributeIds = productCategoryEntity.getProductAttributeIds().split(",");
           
            for (int i = 0; i < productAttributeIds.length; i++) {
                if(i != productAttributeIds.length - 1)
                {
                   pSB.append("'").append(productAttributeIds[i]).append("'").append(",");
                }else{
                   pSB.append("'").append(productAttributeIds[i]).append("'");
                }
            }
           
           
            //得到的是Object对象 不是自定义的对象
            List<Object> tempObjList =
                 findListbySql("select b.id as id,a.id as attribute_id,b.product_attribute_valueas product_attribute_value,a.attribute_name as attribute_name fromproduct_attribute a left join product_infomation b
on (a.id =b.product_attribute_id) where b.product_id = '"+productIds+"'");

            if(tempObjList !=
null && tempObjList.size()>0){
            for (int i = 0; i < tempObjList.size(); i++) {

//所以这里需要转成自定义对象          

Object[] obj = (Object[])tempObjList.get(i);
                String id = (String) obj[0];
                String attributeId = (String) obj[1];
                objAttrIdList.add(attributeId);
                String productAttributeValue = (String) obj[2];
                String attributeName = (String) obj[3];
               
                TempProductAttributeInfoEntity attributeInfoEntity =
newTempProductAttributeInfoEntity();
                attributeInfoEntity.setId(id);
                attributeInfoEntity.setAtttributeId(attributeId);
               attributeInfoEntity.setProductAttributeValue(productAttributeValue);
                attributeInfoEntity.setAttributeName(attributeName);
                tempProductAttributeInfoEntities.add(attributeInfoEntity);
               
               
            }
            }
           
            List<ProductAttributeEntity> attributeList =findByQueryString("FromProductAttributeEntity WHERE id IN ("+pSB.toString()+")");
            if(attributeList !=
null && attributeList.size()>0){
                for (ProductAttributeEntity productAttributeEntity :attributeList) {
                   prodAttrIdList.add(productAttributeEntity.getId());
                }
            }
           
            if(attributeList.size() != tempObjList.size()){
                for(String tempAttributeId : objAttrIdList){
                prodAttrIdList.remove(tempAttributeId);
                }
               
                for (String attributeId : prodAttrIdList) {
                   for (ProductAttributeEntity productAttributeEntity :attributeList) {
                      if(productAttributeEntity.getId().equals(attributeId) ){
                         TempProductAttributeInfoEntityattributeInfoEntity =
new TempProductAttributeInfoEntity();
                         attributeInfoEntity.setId(UUID.randomUUID().toString());
                         attributeInfoEntity.setAtttributeId(attributeId);
                         attributeInfoEntity.setProductAttributeValue(" ");
                      attributeInfoEntity.setAttributeName(productAttributeEntity.getAttributeName());
                         tempProductAttributeInfoEntities.add(attributeInfoEntity);
                      }
                   }
                }
            }
            return tempProductAttributeInfoEntities;
           
         }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: