Wednesday 24 August 2011

Criteria Query Examples

In the last lesson we learnt how to use Criteria Query to select all the records from Insurance table.

Criteria Query Examples

In the last lesson we learnt how to use Criteria Query to select all the records from Insurance table. In this lesson we will learn how to restrict the results returned from the database. Different method provided by Criteria interface can be used with the help of Restrictions to restrict the records fetched from database.






Criteria Interface provides the following methods:









MethodDescription
addThe Add method adds a Criterion to constrain the results to be retrieved.
addOrderAdd an Order to the result set.
createAliasJoin an association, assigning an alias to the joined entity
createCriteriaThis method is used to create a new Criteria, "rooted" at the associated entity.
setFetchSizeThis method is used to set a fetch size for the underlying JDBC query.
setFirstResultThis method is used to set the first result to be retrieved.
setMaxResultsThis method is used to set a limit upon the number of objects to be retrieved.
uniqueResult
  
This method is used to instruct the Hibernate to fetch and return the unique records from database.
Class Restriction provides built-in criterion via static factory methods. Important methods of the Restriction class are:




















MethodDescription
Restriction.allEq
  
This is used to apply an "equals" constraint to each property in the key set of a Map
Restriction.between
  
This is used to apply a "between" constraint to the named property
Restriction.eq
  
This is used to apply an "equal" constraint to the named property
Restriction.ge
  
This is used to apply a "greater than or equal" constraint to the named property
Restriction.gt
  
This is used to apply a "greater than" constraint to the named property
Restriction.idEqThis is used to apply an "equal" constraint to the identifier property
Restriction.ilike
  
This is case-insensitive "like", similar to Postgres ilike operator
Restriction.inThis is used to apply an "in" constraint to the named property
Restriction.isNotNullThis is used to apply an "is not null" constraint to the named property
Restriction.isNull  This is used to apply an "is null" constraint to the named property
Restriction.le This is used to apply a "less than or equal" constraint to the named property
Restriction.likeThis is used to apply a "like" constraint to the named property
Restriction.ltThis is used to apply a "less than" constraint to the named property
Restriction.ltPropertyThis is used to apply a "less than" constraint to two properties
Restriction.ne This is used to apply a "not equal" constraint to the named property
Restriction.nePropertyThis is used to apply a "not equal" constraint to two properties
Restriction.not  This returns the negation of an expression
Restriction.or This returns the disjuction of two expressions
Here is an example code that shows how to use Restrictions.like method and restrict the maximum rows returned by query by setting the Criteria.setMaxResults() value to 5.


package roseindia.tutorial.hibernate;

import org.hibernate.Session;
import org.hibernate.*;
import org.hibernate.criterion.*;
import org.hibernate.cfg.*;
import java.util.*;
/**
 @author Deepak Kumar
 
 * http://www.roseindia.net
Hibernate Criteria Query Example

 *  
 */public class HibernateCriteriaQueryExample2 {
  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);
  crit.add(Restrictions.like("
insuranceName"
"%a%"))//Like 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());
  
  }
  session.close();
  catch (Exception e) {
  System.out.println(e.getMessage());
  finally {
  }  
  }
}
/

No comments:

Post a Comment