Friday, 24 May 2013

Hibernate Min() Function (Aggregate Functions)


In this section, we will show you, how to use the Min() function. Hibernate supports multiple aggregate functions. When they are used in HQL queries, they return an aggregate value ( such as avg(...), sum(...), min(...), max(...) , count(*), count(...), count(distinct ...), count(all...) ) calculated from property values of all objects satisfying other query criteria. 
Following is a aggregate function (min() function) with their respective syntax.
min( [ distinct | all ] object.property)
The Min() function aggregates the minimum value of the given column. 
Table Name: insurance
ID
insurance_name
invested_amount
investement_date
2
Life Insurance
25000
0000-00-00 00:00:00
1
Givan Dhara
20000 
2007-07-30 17:29:05
3
Life Insurance
  500
2005-10-15 00:00:00
4
Car Insurance 
  2500
2005-01-01 00:00:00
5
Dental Insurance
500
2004-01-01 00:00:00
Life Insurance
900
2003-01-01 00:00:00
Travel Insurance
  2000 
2005-02-02 00:00:00
Here is the java code to retrieve the minimum value of "invested_amount" column from insurance table:
package roseindia.tutorial.hibernate;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateHQLMinFunction {

  /**
 * @Vinod Kumar
 */
  public static void main(String[] args) {
  // TODO Auto-generated method stub
  Session sess = null;
  try {
  SessionFactory fact = new 
Configuration().configure().buildSessionFactory();
  sess = fact.openSession();
  String SQL_QUERY = "select min
(investementAmount) from Insurance insurance";
  Query query = sess.createQuery(SQL_QUERY);
  List list = query.list();
  System.out.println("Min 
Invested Amount: " + list.get(0));
  }
  catch(Exception e){
  System.out.println(e.getMessage());
  }
  }

}

Output:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select min(insurance0_.invested_amount) as col_0_0_ from insurance insurance0_
Min Invested Amount: 500

No comments:

Post a Comment

Simple CRUD in Laravel Framework

Creating, reading, updating, and deleting resources is used in pretty much every application. Laravel helps make the process easy using reso...