
How to apply detachedcriteria in hibernate for given Query?

Detached Criteria query is a facility provide by
Hibernate to write criteria queries in ?detached
mode?, where hibernate session is not available.
You can instantiate this class anywhere.
For it you have to import
org.hibernate.criterion.DetachedCriteria;
Here is a way to write DetchedCriteria -
DetachedCriteria query = DetachedCriteria.forClass(Employee.class);
query.add(Property.forName("name").eq("Ron"));
Next you can obtain criteria by passing any arbitrary session to getExecutableCriteria() as ?
employeeList = query.getExecutableCriteria(session).list();
Here is Example:-
package net.roseindia.main;
import java.util.*;
import net.roseindia.table.Employee;
import net.roseindia.util.HibernateUtil;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Property;
public class DetachedCriteriaQuery {
public static void main(String[] args) {
DetachedCriteria query = DetachedCriteria.forClass(Employee.class);
query.add(Property.forName("name").eq("Ron"));
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
Session session = sessionFactory.openSession();
List<Employee> employeeList = new ArrayList<Employee>();
employeeList = query.getExecutableCriteria(session).list();
Iterator it = employeeList.iterator();
while (it.hasNext()) {
Employee employee = (Employee) it.next();
System.out.println("Name : " + employee.getName());
System.out.println("Salary : " + employee.getSalary());
System.out.println("Date of Join : " + employee.getDateOfJoin());
}
session.close();
}
}
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.