KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm computing a SUM grouped by months Query q = entityManager.createNativeQuery(qlString); q.setParameter("program", program); @SuppressWarnings("unchecked") List<Long> resultList = (List<Long>) q.getResultList(); long tend = System.currentTimeMillis(); When I pass in two resultsLists (closed:ResultsList of Closed items, closedLate: ResultsList of items Closed late) into a method that computes percentages, I get javax.servlet.ServletException: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Long . private List<Long> computeOTR(List<Long> closed, List<Long> closedLate) { List<Long> monthlyOTR = new ArrayList<Long>(); long numerator; Long denominator; for (int i = 0; i <11; i++) { numerator = closed.get(i) - closedLate.get(i); <----java.lang.ClassCastException denominator = closed.get(i); long percentage = (int)(numerator * 100.0 / denominator + 0.5); monthlyOTR.add(i, percentage); } return monthlyOTR; } In Eclipse debug mode closed is showing as BigDecimal. Why is this when I decalre List<Long> resultList = (List<Long>) q.getResultList(); EDIT-Hibernate Query: public List<Long> findClosedLateByProgram(String program) { long tstart = System.currentTimeMillis(); //@formatter:off String qlString = "with PRJ as ( " + "select trunc(END_DATE) as END_DATE, " + "trunc(NEED_DATE) as NEED_DATE " + "from (SELECT UNIQUE * FROM TEST where PROGRAM_NAME = :program " + "AND ACTION_BY_ORG = 'AAA') " + "), " + "DATES as ( select add_months(trunc(last_day(SYSDATE)), level-7) as thedate " + "from dual connect by level <= 12 ) " + "SELECT nvl(sum(case when NE
Tags (comma-separated)
Save Edits
Cancel