严重: java.lang.NumberFormatException: For input string: "companyCode"
在 object数组的时候,要注意好类型的转换.
------java.lang.NumberFormatException: For input string 解决方法--------------------------------------------------------
字符分割异常 转化字符或输入字符问题
public List<?> findAgencyArSumDetail(
SettlementAgencyARDetailResult headInfoArResult) {
String sql = "SELECT CNTR_SIZE||CNTR_TYPE AS containerSizes,"
+ " COMPANY_CDE AS companyCode,"
+ " FULL_EMPTY_IND AS fullEmptyIndicator,"
+ " EXP_IMP_IND AS expImportIndicator,"
+ " SOC_IND AS socIndicator,"
+ " COUNT(*) AS containeraCount,"
+ " SUM(FEE_AMT) AS toTalNum,"
+ " FEE_PRICE AS feePrice"
+ " FROM CBS_SET_DOC_AG_CNTR "
+ " WHERE SVVD_ID=:svvdId"
+ " AND PORT_CDE=:portCode"
+ " AND COMPANY_CDE=:companyCode"
+ " AND SO_COMPANY_CDE=:SOCompanyCode"
+ " AND FEE_TYPE=:feeType"
+ " AND ACT_FLAG=:actualFlag"
+ " GROUP BY(CNTR_SIZE||CNTR_TYPE,FULL_EMPTY_IND,SOC_IND,EXP_IMP_IND,FEE_PRICE,COMPANY_CDE)";
SQLQuery querys = (SQLQuery) cbsModuleRepository.getSessionFactory()
.getCurrentSession().createSQLQuery(sql.toString());
querys.setParameter(SettlementContant.SVVD_ID,
headInfoArResult.getSvvdId());
querys.setParameter(SettlementContant.PORT_CODE,
headInfoArResult.getPortCode());
querys.setParameter(SettlementContant.COMPANY_CODE,
headInfoArResult.getCompanyCode());
querys.setParameter(SettlementContant.SO_COMPANY_CODE,
headInfoArResult.getShipownerCompanyCode());
querys.setParameter(SettlementContant.FEE_TYPE,
headInfoArResult.getChargeCode());
querys.setParameter(SettlementContant.ACTUAL_FLAG,
SettlementContant.ACTUAL_FLAG_Y);
List<Object[]> list = querys.list();
SettlementAgencySumDetailResult agencySumDetailResult = null;
List<SettlementAgencySumDetailResult> queryList = new ArrayList<SettlementAgencySumDetailResult>();
for (Object[] object : list) {
agencySumDetailResult = new SettlementAgencySumDetailResult();
agencySumDetailResult.setContainerSizes((String) object[0]);
agencySumDetailResult.setCompanyCode((String) object[1]);
agencySumDetailResult.setFullEmptyIndicator((String) object[2]);
agencySumDetailResult.setExpImportIndicator((String) object[3]);
agencySumDetailResult.setSocIndicator((String) object[4]);
agencySumDetailResult.setContaineraCount((BigDecimal) object[5]);
agencySumDetailResult.setToTalNum((BigDecimal) object[6]);
agencySumDetailResult.setFeePrice((BigDecimal) object[7]);
queryList.add(agencySumDetailResult);
}
return queryList;
}
注意循环遍历放到 List中..
这里还有关于HQL中在字符串的拼接问题.
第一种:
+ " commBl.billBasicUuid= " + docHead.getBusinessReferenceUuid()
+ " AND commBlpanyCode = '" +docHead.getCompanyCode()+"'"
+ " AND commBlmissionMode '" +arItem.getChargeCodeGroup()+"'"
+ " AND commBlmissionType '" +arItem.getChargeCode()+"'"
hql.append(" WHERE commBl.billBasicUuid=:businessReferenceUuid");
hql.append(" AND commBlpanyCode =:companyCode");
hql.append(" AND commBlmissionMode=:chargeCodeGroup");
hql.append(" AND commBlmissionType=:chargeCode");
第二种:
Query query = cbsModuleRepository.getSessionFactory()
.getCurrentSession().createQuery(hql.toString());
query.setParameter(SettlementContant.BUSINESS_REFERENCE_UUID,
settlementHead.getBusinessReferenceUuid());
query.setParameter(SettlementContant.COMPANY_CODE,
settlementHead.getCompanyCode());
query.setParameter(SettlementContant.CHARGE_CODE_GROUP,
settlementAR.getChargeCodeGroup());
query.setParameter(SettlementContant.CHARGE_CODE,
settlementAR.getChargeCode());
跟上边的可以比较一下,这里例举2中拼接的例子.
更多推荐
java.lang.NumberFormatException: For input string
发布评论