How to work with alias in JPQL

跟風遠走 提交于 2019-12-01 23:28:34

Your query return an array of Object[] and not GraphDto Object, you have multiple ways to solve this problems :

Solution 1

Create a constructor which hold daydate, value1, value2

@Entity
public class GraphDto{

    private Date daydate;
    private Long value1;
    private Long value2;

    public GraphDto(Date daydate, Long value1, Long value2){
        //...
    }
    //..getters and setters
}

then your query should look like this :

SELECT NEW com.packagename.GraphDto(cast(creationDate AS date), SUM(paymentValue), fxRate)
FROM payment
GROUP BY cast(creationDate AS date)

Solution 2

change the return type to :

List<Object[]> findPaymentValuePerDay ();

Then in your service loop over this object and extract the values :

List<Object[]> listObject = rep.findPaymentValuePerDay();
for(Object[] obj : listObject){
   Date date = (Date) obj[0];
   Long value1 = (Long) obj[1];
   Long value2 = (Long) obj[2];
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!