Search code examples
javasqljpacriteria

How can I use JPA do this SQL query?


Hello everyone I try do this query "SELECT SUM(cevecoin) FROM coin where clid="ABC" in JPA but it's no working. Can somebody help me?

public Integer SumCoin(String Clid) {
    CriteriaBuilder builder =getSession().getCriteriaBuilder();
    CriteriaQuery<CoinBean> criteria =builder.createQuery(CoinBean.class);
    Root<CoinBean> root = criteria.from(CoinBean.class);
    criteria.select(builder.sum(root.<Integer>get("clid")).as(CoinBean.class)).where(builder.equal(root.get("clid"),Clid));
    return getSession().createQuery(criteria).getSingleResult().getCevecoin();
}

Solution

  • try this:

    CriteriaBuilder builder =getSession().getCriteriaBuilder();
    // the type of query criteria must correspond to the result we want to obtain
    CriteriaQuery<BigDecimal> criteria = builder.createQuery(BigDecimal.class);
    Root<CoinBean> root = criteria.from(CoinBean.class);
    // use multiselect and sum the field cevecoin
    criteria.multiselect(builder.sum(root.get("cevecoin")))
    criteria.where(builder.equal(root.get("clid"),Clid));
    
    return getSession().createQuery(criteria).getSingleResult();