public List
fetchDetailMetrics(Date dateFrom, Date dateTo, String navPage, String navOption, OrganizationDTO org) {
List
pageViews = new ArrayList (); log.warn("Date from " + dateFrom + " to " + dateTo);
DetachedCriteria metrics = DetachedCriteria.forClass(MetricsForUserSession.class);
metrics.add(Expression.between("dateTime", dateFrom, dateTo));
metrics.add(Expression.eq("navOption", navOption));
metrics.add(Expression.eq("navPage", navPage));
if (org != null)
{
log.warn(" org " + org.getName());
metrics.add(Expression.eq("organization.id", org.getId()));
}
ProjectionList projectList = Projections.projectionList();
// group by
projectList.add(Projections.groupProperty("entityId"));
// alias of the column head
projectList.add(Projections.alias(Projections.rowCount(), "count"));
metrics.setProjection(projectList);
// order by, sorting
metrics.addOrder(Order.desc("count"));
List
if (results == null || results.size() <>
log.warn("fetched nothing");
else
log.warn("fetched " + results.size());
log.warn("fetched navPages " + results.size());
for (Object[] column : results)
{
log.warn(column[0] + " " + column[1]);
PageView pageView = new PageView();
determineDescription(pageView, column, navPage);
pageView.setViewCount(new Integer(column[1].toString()));
pageViews.add(pageView);
}
return pageViews;
}
Hibernate Detached criteria with projections (GROUP BY)
Examples of Spring/Hibernate compare, group by, order by (sort) functionality:
My favorite quotations..
“A man should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.” by Robert A. Heinlein
"We are but habits and memories we chose to carry along." ~ Uki D. Lucas
Recommended pages
Popular Recent Articles
-
View on Amazon https://amzn.to/3xTc7sx Please SUBSCRIBE: https://ukidlucas.beehiiv.com/
-
I have noticed a very unsettling statistic on my blog. This prompted a fascinating question about AI, blogs' future, and maybe even the...
-
I live in a very rugged Pacific Northwest (PNW). The terrain consists of sharp rocks in summer and wet or snow-covered sharp rocks in winte...
-
In this post, I reflect on the profound impact of habits and effective time management over a year. I share personal experiences and stra...
-
All images and videos were taken by Uki, the author. At this point, I could only export raw movie footage from today's dive. In the fut...
-
After four meetings in a row, I had the need to get out of the office and go to Redmond French Cafe . The “Croque Madame” plate is not the b...
-
See the photo below. When I was posting my previous article on X.co (Twitter) I was literally following a post of Elon Musk. I thought it wa...
-
You know when you live in the right town when, on a single walk, you have to cross under a fallen tree and chase a coyote out of your path. ...
-
I have been wearing wool products for a very long time now. The highlanders of the region where I was born were wearing wool in winter and ...
-
This slingshot shot took a lot of practice , but she had fun and became very consistent . Buy it on Amazon: Item Name Author Producer Amaz...