1.Criteria
(1).查询House的关联对象的时候
public static void main(String[] args) {
Session session=HibernateUtil.getSession();
Criteria c=session.createCriteria(House.class,"h").createCriteria("h.street","s");
c.add(Restrictions.eq("s.name", "南施街"));
List<House> hs=c.list();
displayHouses(hs);
}
(2).Restrictions.isEmpty()方法
public static void main(String[] args) {
Session session=HibernateUtil.getSession();
Criteria c=session.createCriteria(District.class,"d");
c.add(Restrictions.isEmpty("d.streets")); //查看街道信息为空的区,如果不为空则是 isNotEmpty
List<District> ds=c.list();
displayDistrict(ds);
}
(3).Restriction.in()方法
public static void main(String[] args) {
Session session=HibernateUtil.getSession();
Criteria c=session.createCriteria(House.class,"h");
c.add(Restrictions.in("h.title",new String[]{"绝世好房No.1","绝世好房No.2"}));
List<House> hs=c.list();
displayHouses(hs);
}
(4).c.addOrder(Order.desc("price"));
public static void main(String[] args) {
Session session=HibernateUtil.getSession();
Criteria c=session.createCriteria(House.class,"h");
c.addOrder(Order.desc("title")); //正序为asc
List<House> hs=c.list();
displayHouses(hs);
}
2.Restrictions
=
Restrictions.eq()
等于equal
<>
Restrictions.ne()
不等于not equal
>
Restrictions.gt()
大于greater than
>=
Restrictions.ge()
大于等于greater than or equal
<
Restrictions.lt()
小于less than
<=
Restrictions.le()
小于等于less than or equal
is null
Restrictions.isnull()
等于空值
is not null
Restrictions.isNotNull()
非空值
like
Restrictions.like()
字符串模式匹配
and
Restrictions.and()
逻辑与
and
Restrictions.conjunction()
逻辑与
or
Restrictions.or()
逻辑或
or
Restrictions.disjunction()
逻辑或
not
Restrictions.not()
逻辑非
in(列表)
Restrictions.in()
等于列表中的某一个值
not in(列表)
Restrictions.not(Restrictions.in())
不等于列表中任意一个值
between x and y
Restrictions.between()
闭区间xy中的任意值
not between x and y
Restrictions.not(Restrictions.between())
小于值X或者大于值y
3.Projection实现sum()等聚合函数
recordCount=Convert.ToInt32(criteria.SetProjection( Projections.Count(MovieUrl.__ID )) .UniqueResult( ));
4.举例
Criteria c=session.createCriteria(Book.class);
c.add(Restrictions.like("bookname", "a",MatchMode.ANYWHERE));
c.add(Restrictions.between("bid", 1, 3));
c.add(Restrictions.not(Restrictions.in("bid", new Integer[]{1,2,4})));
c.setFirstResult(0);
c.setMaxResults(2);
List list=c.list();
Restrictions.like(“”,…,MatchMode.ANYWHERE)
AddOrder(Order.asc(“fwid”))