hibernate 查询时 对日期的比较
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;
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
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 =
- (Insurance) it.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 {
- }
- }
- }
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 = (Insurance) it.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