将 左外连接 后查询的对象 转成自定义对象
@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;
}