Java Tutorial/Hibernate/Criteria
Содержание
Add Restrictions.sqlRestriction to Criteria
File: Main.java
<source lang="java">
import java.util.Date; import java.util.Iterator; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Disjunction; import org.hibernate.criterion.Restrictions; public class Main {
public static void main(String[] args) throws Exception { HibernateUtil hibernateUtil = new HibernateUtil(); hibernateUtil .executeSQLCommand("create table survey (id int,name varchar, purchasedate date);"); Session session = hibernateUtil.getSession(); Survey survey = new Survey(); survey.setName("Survey"); survey.setPurchaseDate(new Date()); session.save(survey); survey = new Survey(); survey.setName("Survey1"); survey.setPurchaseDate(new Date()); session.save(survey); session.flush(); Criteria crit = session.createCriteria(Survey.class); crit.add(Restrictions.sqlRestriction("name like "S%""));
List results = crit.list(); Iterator iter = results.iterator(); while (iter.hasNext()) { Survey cd = (Survey) iter.next(); System.out.println("Result Name:"+cd.getName()); } session.close(); hibernateUtil.checkData("select * from survey"); }
}</source>
Combine Two Criteria
File: Main.java
<source lang="java">
import java.util.Date; import java.util.Iterator; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; public class Main {
public static void main(String[] args) throws Exception { HibernateUtil hibernateUtil = new HibernateUtil(); hibernateUtil .executeSQLCommand("create table survey (id int,name varchar, purchasedate date);"); Session session = hibernateUtil.getSession(); Survey survey = new Survey(); survey.setName("Survey"); survey.setPurchaseDate(new Date()); session.save(survey); survey = new Survey(); survey.setName("Survey1"); survey.setPurchaseDate(new Date()); session.save(survey); session.flush(); Criteria crit = session.createCriteria(Survey.class); crit.add(Restrictions.gt("Id",new Integer(0))); crit.add(Restrictions.like("name","S%")); List results = crit.list(); Iterator iter = results.iterator(); while (iter.hasNext()) { Survey cd = (Survey) iter.next(); System.out.println("Result Name:"+cd.getName()); } session.close(); hibernateUtil.checkData("select * from survey"); }
}</source>
Criteria and Restrictions.ne
File: Main.java
<source lang="java">
import java.util.Date; import java.util.Iterator; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; public class Main {
public static void main(String[] args) throws Exception { HibernateUtil hibernateUtil = new HibernateUtil(); hibernateUtil .executeSQLCommand("create table survey (id int,name varchar, purchasedate date);"); Session session = hibernateUtil.getSession(); Survey survey = new Survey(); survey.setName("Survey"); survey.setPurchaseDate(new Date()); session.save(survey); survey = new Survey(); survey.setName("Survey1"); survey.setPurchaseDate(new Date()); session.save(survey); session.flush(); Criteria crit = session.createCriteria(Survey.class); crit.add(Restrictions.ne("name","Survey")); List results = crit.list(); Iterator iter = results.iterator(); while (iter.hasNext()) { Survey cd = (Survey) iter.next(); System.out.println("Result Name:"+cd.getName()); } session.close(); hibernateUtil.checkData("select * from survey"); }
}</source>
Criteria Transformer
File: Main.java
<source lang="java">
import java.util.Date; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; public class Main {
public static void main(String[] args) throws Exception { HibernateUtil hibernateUtil = new HibernateUtil(); hibernateUtil .executeSQLCommand("create table survey (id int,name varchar, purchasedate date);"); Session session = hibernateUtil.getSession(); Survey survey = new Survey(); survey.setName("Survey"); survey.setPurchaseDate(new Date()); session.save(survey); survey = new Survey(); survey.setName("Survey1"); survey.setPurchaseDate(new Date()); session.save(survey); session.flush(); Criteria crit = session.createCriteria(Survey.class); crit.add(Restrictions.gt("Id",new Integer(0))); crit.add(Restrictions.like("name","S%")); crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List results = crit.list(); System.out.println(results); session.close(); hibernateUtil.checkData("select * from survey"); }
}</source>
Descending Order
File: Main.java
<source lang="java">
import java.util.Date; import java.util.Iterator; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; public class Main {
public static void main(String[] args) throws Exception { HibernateUtil hibernateUtil = new HibernateUtil(); hibernateUtil .executeSQLCommand("create table survey (id int,name varchar, purchasedate date);"); Session session = hibernateUtil.getSession(); Survey survey = new Survey(); survey.setName("Survey"); survey.setPurchaseDate(new Date()); session.save(survey); survey = new Survey(); survey.setName("Survey1"); survey.setPurchaseDate(new Date()); session.save(survey); session.flush(); Criteria crit = session.createCriteria(Survey.class); crit.add(Restrictions.gt("Id",new Integer(0))); crit.addOrder(Order.desc("Id")); List results = crit.list(); Iterator iter = results.iterator(); while (iter.hasNext()) { Survey cd = (Survey) iter.next(); System.out.println("Result Name:"+cd.getName()); } session.close(); hibernateUtil.checkData("select * from survey"); }
}</source>
Pageable result: First Result and Max Result
File: Main.java
<source lang="java">
import java.util.Date; import java.util.Iterator; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Disjunction; import org.hibernate.criterion.Restrictions; public class Main {
public static void main(String[] args) throws Exception { HibernateUtil hibernateUtil = new HibernateUtil(); hibernateUtil .executeSQLCommand("create table survey (id int,name varchar, purchasedate date);"); Session session = hibernateUtil.getSession(); Survey survey = new Survey(); survey.setName("Survey"); survey.setPurchaseDate(new Date()); session.save(survey); survey = new Survey(); survey.setName("Survey1"); survey.setPurchaseDate(new Date()); session.save(survey); session.flush(); Criteria crit = session.createCriteria(Survey.class); crit.setFirstResult(1); crit.setMaxResults(2);
List results = crit.list(); Iterator iter = results.iterator(); while (iter.hasNext()) { Survey cd = (Survey) iter.next(); System.out.println("Result Name:"+cd.getName()); } session.close(); hibernateUtil.checkData("select * from survey"); }
}</source>
Return Unique Result
File: Main.java
<source lang="java">
import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Criterion; import org.hibernate.criterion.Restrictions; public class Main {
public static void main(String[] args) throws Exception { HibernateUtil hibernateUtil = new HibernateUtil(); hibernateUtil .executeSQLCommand("create table survey (id int,name varchar, purchasedate date);"); Session session = hibernateUtil.getSession(); Survey survey = new Survey(); survey.setName("Survey"); survey.setPurchaseDate(new Date()); session.save(survey); survey = new Survey(); survey.setName("Survey1"); survey.setPurchaseDate(new Date()); session.save(survey); session.flush(); Criteria crit = session.createCriteria(Survey.class); crit.setFirstResult(1); crit.setMaxResults(2);
Criterion price = Restrictions.gt("Id",new Integer(0)); crit.setMaxResults(1); Survey product = (Survey) crit.uniqueResult(); //test for null here if needed List results = new ArrayList(); results.add(product); Iterator iter = results.iterator(); while (iter.hasNext()) { Survey cd = (Survey) iter.next(); System.out.println("Result Name:"+cd.getName()); } session.close(); hibernateUtil.checkData("select * from survey"); }
}</source>