Hibernate框架-Criteria语法

一、Criteria语法

1、基本查询

public void fun1(){
	Session session = HibernateUtils.openSession();
	Transaction tx = session.beginTransaction();
	//----------------------------------------------------
	Criteria c = session.createCriteria(Customer.class);
		
	List<Customer> list = c.list();
	
	System.out.println(list);
	//----------------------------------------------------
	tx.commit();
	session.close();
}

2、条件查询

Criteria c = session.createCriteria(Customer.class);

//c.add(Restrictions.idEq(2l));
c.add(Restrictions.eq("cust_id",2l));	
List<Customer> list = c.list();
		
System.out.println(list);

3、分页查询

Criteria c = session.createCriteria(Customer.class);
//limit ?,? 
c.setFirstResult(0);
c.setMaxResults(2);
List<Customer> list = c.list();
		
System.out.println(list);

4、排序查询

Criteria c = session.createCriteria(Customer.class);
		
c.addOrder(Order.asc("cust_id"));
//c.addOrder(Order.desc("cust_id"));
List<Customer> list = c.list();
		
System.out.println(list);

5、统计查询

Criteria c = session.createCriteria(Customer.class);
		
//设置查询目标
c.setProjection(Projections.rowCount());
List list = c.list();
		
System.out.println(list);

二、离线查询
1、非离线


2、离线


代码:

//离线Criteria
public class Demo2 {
	public void fun1(){
		//Service/web层
		DetachedCriteria dc  = DetachedCriteria.forClass(Customer.class);
		dc.add(Restrictions.idEq(6l));//拼装条件(全部与普通Criteria一致)
		//----------------------------------------------------
		Session session = HibernateUtils.openSession();
		Transaction tx = session.beginTransaction();
		//----------------------------------------------------
		Criteria c = dc.getExecutableCriteria(session);
		List list = c.list();
		
		System.out.println(list);
		//----------------------------------------------------
		tx.commit();
		session.close();
	}
}

猜你喜欢

转载自blog.csdn.net/w_meng_h/article/details/80280065
今日推荐