QueryService 질문입니다..
로직 맞게 한것 같은데... detailTotalList 리턴 값이 왜 null 인지 몰겠습니다.
다른 툴로 쿼리 돌려보면 값이 나오므로, 쿼리문은 분명 한개 이상의 값을 가져야 하구요.
쿼리가 뭐 틀린게 있는건지요.. size 체크해보면 Collection 갯수 들어있습니다.
아니면 getDetailTotalList() 로직에서 잘못된건지 이유를 모르겠네요.
소스는 아래와 같습니다.
...
...
public List getDetailTotalList() throws Exception {
List detailTotalList = new ArrayList();
Collection detailTotalCollection = queryService.find("findBillDetailTotalList", new Object[]{});
Iterator detailTotalItr = detailTotalCollection.iterator();
while (detailTotalItr.hasNext()) {
Map detailTotaltMap = (Map) detailTotalItr.next();
detailTotalList.add(detailTotaltMap.get("svc_chg").toString());
}
// 이부분...
return detailTotalList;
}
쿼리 매핑 파일 부분
(query id="findBillDetailTotalList")
(statement)
(![CDATA[
SELECT sum(trunc(invoice.service_charge2)) svc_chg
FROM bill_invoice invoice, bill_svc svc, bill_customer customer, bill_item_code item
WHERE invoice.start_date like '20100825%' AND
invoice.customer_id = customer.customer_id AND
invoice.svc_id = svc.svc_id AND
invoice.item_code = item.item_code AND
customer.customer_id = 'TEST01'
GROUP BY customer.customer_id
]])
(/statement)
(/query)


답변드립니다,,
NullPointException 이 발생하는 이유는 svc_chg 가 camel case 가 적용되어 svcChg로 매핑되기 때문입니다,,
Anyframe Query Service의 Result Mapping 정책이고 보다 자세한 내용은 Query Service 매뉴얼을 참조하시기 바랍니다,,
위 소스에서 조치 방법은 두가지 입니다,,
1. mapping xml file에서 alias 에서 _ 빼고 이름을 변경 : ex) svc_chg -> svcchg
2. Default 적용된 Camelcase를 false로 조치 : mapping xml file 에서 isCamelCase="false" 명시
ex)(query id="findBillDetailTotalList" isCamelCase="false")
감사합니다,,
답변 정말 감사합니다.. ^^
API 상에도 나와있네요..감사합니다~