|
SQL Restriction2
The following example shows how to use Hibernate SQL Restriction.
Refer first example for the configuration and mapping.
|
package com.bethecoder.tutorials.hibernate.basic.criteria;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Hibernate;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;
import com.bethecoder.tutorials.hibernate.basic.Company;
import com.bethecoder.tutorials.hibernate.basic.util.HibernateUtil;
public class CriteriaSQLRestrictionTest2 {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("Companies name like 'a%'");
getCompanies("a%");
System.out.println("Companies name like '%k'");
getCompanies("%k");
}
private static void getCompanies(String matchCompanyName) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Criteria criteria = session.createCriteria(Company.class);
criteria.add(Restrictions.sqlRestriction(
"lower({alias}.name) like lower(?)", matchCompanyName, Hibernate.STRING) );
List<Company> companies = criteria.list();
for (Company company : companies) {
System.out.println(company);
}
session.getTransaction().commit();
session.close();
}
}
|
| |
It gives the following output,
Companies name like 'a%'
{ id = 2, name = ABC, employeeCount = 23430,
projectCount = 160, address1 = add11, address2 = add22 }
{ id = 5, name = ART, employeeCount = 67890,
projectCount = 850, address1 = add1112, address2 = add2223 }
{ id = 7, name = AOQ, employeeCount = 97890,
projectCount = 4578, address1 = add17892, address2 = add2893 }
Companies name like '%k'
{ id = 4, name = IJK, employeeCount = 67890,
projectCount = 850, address1 = add1112, address2 = add2223 }
{ id = 6, name = RNK, employeeCount = 98890,
projectCount = 8478, address1 = add1412, address2 = add27823 }
|
|