JPA multiselect function groupBy orderBy
JPA multiselect function groupBy orderBy
@Autowired
EntityManager entityManager;
CriteriaBuilder builder = entityManager.getCriteriaBuilder();
CriteriaQuery<Object[]> query = builder.createQuery(Object[].class);
Root<Book> root = query.from(Book.class);
query.multiselect(root.get("date"), builder.sum(root.get("amount")))
.groupBy(builder.function("date_format", Date.class, root.get("date"), builder.literal("%Y-%m")))
.orderBy(builder.desc(root.get("date")));
List<Object[]> list = entityManager.createQuery(query).getResultList();