This is criteria which returns 6 columns.
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("se.ticker"),"ticker");
projList.add(Projections.property("cl.firstName"),"firstName");
projList.add(Projections.property("cl.middleName"),"middleName");
projList.add(Projections.property("tr.client"),"client");
projList.add(Projections.sum("tr.cumulativeQty"),"cumulativeQty");
projList.add(Projections.sum("tr.cumulativeBalance"),"cumulativeBalance");
projList.add(Projections.groupProperty("tr.securityId"));
Criteria criteria = createEntityCriteria(TransactionDetails.class, "tr")
.createAlias("tr.client", "cl")
.createAlias("tr.security", "se")
.add(Restrictions.eq("cl.id", clientId))
.setProjection(projList);
return (List<TransactionDetails>) criteria.list();
How to access column details(data with column). I have given the alias name but its of no use. Please Suggest me the way to access the column data.
I used Iterator to get the data. Its working now.
transactionDetailsList = transactionDetailsDao.getClientHoldingsBySecurityIdClientId(securityId, clientId);
List list = transactionDetailsList;
Iterator it = list.iterator();
if (!it.hasNext()) {
System.out.println("No any data!");
} else {
while (it.hasNext()) {
TransactionDetailsDto transactionDetailsDto = new TransactionDetailsDto();
Object[] row = (Object[]) it.next();
int count=0;
for (int i = 0; i < row.length; i++) {
switch (i) {
case 0:
transactionDetailsDto.setClientMasterId(Long.valueOf(row[i].toString()));
Client client = clientDAO.load(transactionDetailsDto.getClientMasterId());
transactionDetailsDto.setClientDto(new ClientTransformer().transform(client));
break;
}
}
}