java.lang.math.trunc,java – JPA/Hibernate返回BigDecimal不长
我正在計算按月分組的SUM
Query q = entityManager.createNativeQuery(qlString);
q.setParameter("program", program);
@SuppressWarnings("unchecked")
List resultList = (List) q.getResultList();
long tend = System.currentTimeMillis();
當我傳入兩個resultsLists(已關閉:Closed項目的結果列表,closedLate:結果列表項目已關閉)到計算百分比的方法時,我得到
javax.servlet.ServletException: java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Long
.
private List computeOTR(List closed, List closedLate) {
List monthlyOTR = new ArrayList();
long numerator;
Long denominator;
for (int i = 0; i <11; i++) {
numerator = closed.get(i) - closedLate.get(i);
denominator = closed.get(i);
long percentage = (int)(numerator * 100.0 / denominator + 0.5);
monthlyOTR.add(i, percentage);
}
return monthlyOTR;
}
在Eclipse中,調試模式關閉顯示為BigDecimal.為什么這是我的decalre
列表與LT;長> resultList =(List< Long>)q.getResultList();
EDIT-Hibernate查詢:
public List 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 NEED_DATE < trunc(thedate,'mm') AND END_DATE between trunc(thedate,'mm') and thedate then 1 end), 0 ) as CLOSED_LATE " +
"FROM DATES, PRJ " +
"GROUP BY thedate ORDER BY thedate";
//@formatter:on
Query q = entityManager.createNativeQuery(qlString);
q.setParameter("program", program);
// q.setParameter("today",date, TemporalType.DATE);
@SuppressWarnings("unchecked")
List resultList = q.getResultList();
long tend = System.currentTimeMillis();
long elapsed = tend-tstart;
System.out.println("Elapsed Time For Closed But Late: " + elapsed);
return resultList;
}
編輯2
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的java.lang.math.trunc,java – JPA/Hibernate返回BigDecimal不长的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微博html天涯吴奇隆刘诗诗,吴奇隆深夜
- 下一篇: axios 注册拦截器 cdn引用_Pi