Queryservice 질문입니다.
질문이 2가지 있습니다.
(queryservice) 에서 아래와 같이 Mapping XML 정의하였습니다.
(query id="findTotalCountByPk")
(statement)
(![CDATA[
SELECT count(*)
FROM BILL_CUSTOMER billCustomer
]])
(/statement)
(/query)
질문 1 : xxxDAOImpl 로직에서 findTotalCountByPk 를 불러와서 결과값을 구해오는 방법...
질문 2 : query id 를 AbstractDAO 명명 규칙에 맞게 findXXX 이런식으로 말고 다르게 해줘도
코드상에서 쿼리문을 불러올수 있는지...
간단히 카운트 구해오는거 테스트하는건데...ㅜ 처음하는거라 내공이 부족하네요..
참고로 GenericDaoQuery 상속받아서 구현중입니다...
제가 구현한건 아래와 같습니다.
....
....
@Repository("billCustomerDao")
public class BillCustomerDaoQueryImpl extends GenericDaoQuery implements BillCustomerDao {
@Resource
IQueryService queryService;
@Resource
IPropertiesService propertiesService;
@PostConstruct
public void initialize(){
super.setQueryService(queryService);
super.setPropertiesService(propertiesService);
}
public int getTotalCount() throws Exception {
// 이부분....
return 0;
}
}


답변드립니다,,
질문1
구현하시 소스부분에서 //이부분 아래에 다음의 로직을 추가 하면 됩니다. 간단히 소스 내용을 설명 드리면, getQueryService를 통해 queryID를 직접 호출할수 있고 Collection
형태로 리턴된 값을 cnt alias 로 값을 가져오는 로직입니다,,
Collection countCollection = getQueryService().find("findTotalCountByPk", new Object[] {});
Iterator countItr = countCollection.iterator();
if (countItr.hasNext()) {
Map countMap = (Map) countItr.next();
int count = new Integer(countMap.get("cnt").toString()).intValue();
return count;
}
return 0;
질문 2: 위의 소스로 의문이 해결되었을거로 생각됩니다,,
또 다른 질문있으시면 질문해주시고요,, 감사합니다,,
답변 감사합니다. ㅠㅠ
질문 하나 더 올렸습니다.. 부탁드려요.