Hibernate's Built-in criterion: Between (using with Date)

In this section, you will learn to use "between" i.e.one of the built-in hibernate criterions. Restriction class provides built-in criterion via static factory methods. One important method of the Restriction class is between : which is used to apply a

Hibernate's Built-in criterion: Between (using with Date)

Hibernate's Built-in criterion: Between (using with Date)

     

In this section, you will learn to use "between" i.e.one of the built-in hibernate criterions. Restriction  class  provides built-in criterion via static factory methods. One important  method of the Restriction class is between : which is used to apply a "between" constraint to the named property

In this tutorial, "Between" is used with the date object. It takes three parameters e.g.  between("property_name",startDate,endDate)

Here is the code of the class using "between" with the Date class :

package roseindia.tutorial.hibernate;

import org.hibernate.*;
import org.hibernate.criterion.*;
import org.hibernate.cfg.*;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 @author Deepak Kumar
 
 http://www.roseindia.net 
Hibernate Criteria Query Example

 *  
 */public class HibernateCriteriaQueryBetweenDate {
  public static void main(String[] args) {
  Session session = null;
  try {
  // This step will read 
hibernate.cfg.xml and prepare hibernate for

  // use
  SessionFactory sessionFactory 
new Configuration().configure()
  .buildSessionFactory();
  session = sessionFactory.openSession();
  //Criteria Query Example
  Criteria crit = 
session.createCriteria
(Insurance.class);
  DateFormat format = 
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  Date startDate = 
(
Date)format.parse("2005-01-01 00:00:00");
  Date endDate = 
(
Date)format.parse("2005-03-03 00:00:00");
  crit.add(Expression.between
(
"investementDate"new Date(startDate.getTime()),
 
new Date(endDate.getTime())))//
Between date condition

  crit.setMaxResults(5)//
Restricts the max rows to 5


  List insurances = crit.list();
  for(Iterator it = 
insurances.iterator
();it.hasNext();){
  Insurance insurance = 
(Insuranceit.next();
  System.out.println("
ID: " 
+ insurance.getLngInsuranceId());
  System.out.println("
Name: " 
+ insurance.getInsuranceName());
  System.out.println("
Amount: " 
+ insurance.getInvestementAmount());
  System.out.println("
Date: " 
+ insurance.getInvestementDate());
  
  }
  session.close();
  catch (Exception e) {
  System.out.println(e.getMessage());
  finally {
  }  
  }
}

Download this code:

Output:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).

log4j:WARN Please initialize the log4j system properly.

Hibernate: select this_.ID as ID0_0_, this_.insurance_name as insurance2_0_0_, this_.invested_amount as invested3_0_0_,
 this_.investement_date as investem4_0_0_ from insurance this_ where this_.investement_date between ? and ? limit ?

ID: 1

Name: Car Insurance

Amount: 1000

Date: 2005-01-05 00:00:00.0

ID: 4

Name: Car Insurance

Amount: 2500

Date: 2005-01-01 00:00:00.0

ID: 7

Name: Travel Insurance

Amount: 2000

Date: 2005-02-02 00:00:00.0

ID: 8

Name: Travel Insurance

Amount: 600

Date: 2005-03-03 00:00:00.0