In this tutorial you will learn how to use HQL Between clause to select a range of entity falling between 2 and 6. You can change the values to get entities as per your requirement.
In this example code we are selecting all the customer object having primary key (id) between 2 and 6.
The HQL Between used for this purpose is:
// Create HQL Between clause
String HQL_QUERY = "select c from Customer c where c.id between 2 and 6";
To run the example you should have some records in the Customer table. Following SQL can be used to create table in database.
DROP TABLE IF EXISTS `customers`; CREATE TABLE `customers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `customer_name` varchar(50) DEFAULT NULL, `customer_phone` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1; /*Data for the table `customers` */ insert into `customers`(`id`,`customer_name`,`customer_phone`) values (1,'Deepak','222222222'); insert into `customers`(`id`,`customer_name`,`customer_phone`) values (2,'Ravi','6565666877878'); insert into `customers`(`id`,`customer_name`,`customer_phone`) values (3,'John','154545655'); insert into `customers`(`id`,`customer_name`,`customer_phone`) values (4,'Dermot','455666'); insert into `customers`(`id`,`customer_name`,`customer_phone`) values (5,'Raju','5454555'); insert into `customers`(`id`,`customer_name`,`customer_phone`) values (6,'Dinesh','455455454');
Here is the code of Entity class:
package net.roseindia.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.GeneratedValue;
/**
* @author Deepak Kumar
* Hibernate HQL Tutorials
*/
@Entity
@Table(name="customers")
public class Customer {
@Id
@GeneratedValue
@Column(name = "id")
private Integer id;
@Column(name="customer_name")
private String customerName;
@Column(name="customer_phone")
private String customerPhone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getCustomerPhone() {
return customerPhone;
}
public void setCustomerPhone(String customerPhone) {
this.customerPhone = customerPhone;
}
}
Code of HQLBetween.java file:
package net.roseindia.hqlexamples;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import net.roseindia.model.*;
/**
* HQL Select Example In this example we are selecting all the customers from
* the datastore
*/
public class HQLBetween {
public static void main(String[] args) throws Exception {
/** Getting the Session Factory and session */
SessionFactory factory = HibernateUtil.getSessionFactory();
Session session = factory.getCurrentSession();
/** Starting the Transaction */
Transaction tx = session.beginTransaction();
// Create HQL Between clause
String HQL_QUERY = "select c from Customer c where c.id between 2 and 6";
Query query = session.createQuery(HQL_QUERY);
List result = query.list();
for (Iterator it = result.iterator(); it.hasNext();) {
Customer customer = (Customer) it.next();
System.out.println("ID: " + customer.getId());
System.out.println("Name: " + customer.getCustomerName());
System.out.println("Phone: " + customer.getCustomerPhone());
}
/** Closing Session */
session.close();
}
}
You can run the HQL between example code by executing the HQLBetween class. Following is the output of the code:
Hibernate: select customer0_.id as id0_, customer0_.customer_name as customer2_0_, customer0_.customer_phone as customer3_0_ from customers customer0_ where customer0_.id between 2 and 6
ID: 2
Name: Ravi
Phone: 6565666877878
ID: 3
Name: John
Phone: 154545655
ID: 4
Name: Dermot
Phone: 455666
ID: 5
Name: Raju
Phone: 5454555
ID: 6
Name: Dinesh
Phone: 455455454
Download HQL Select Source Code