欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hibernate之Criteria查询及注解

程序员文章站 2024-03-02 18:26:58
...

1. 前言

之前从来没有接触过Hibernate,跳槽之后的公司使用的是Hibernate的Criteria查询。简单整理一下。

2.什么是Criteria查询QBC(Query By Criteria)

Criteria查询是Hibernate提供的另一种查询方式,比HQL更加面向对象的查询方式

2.1.基本用法

2.1.1.获取Criteria查询对象

Criteria criteria = session.createCriteria(Dept.class);

2.1.2.使用Restrictions添加查询条件

Criterion criterion = Restrictions.eq("deptno", 10);
criteria.add(criterion);

2.1.3.获取返回结果

List<Dept> depts = criteria.list();
for(Dept dept : depts){
	system.out.peintln(dept.getDname());
}

代码可简化为

List<Dept> depts =  session.createCriteria(Dept.class).add(Restrictions.eq("deptno", 10)).list();

3.Criteria条件查询

通过add(Restrictions.条件方法())来添加条件

  • Restrictions的方法
  • eq() 等于 ==
  • ne() 不等于 <>
  • gt() 大于 >
  • ge() 大于等于 >=
  • lt() 小于 <
  • le() 小于等于 <=
  • isNull() 是否为空
  • isNotNull() 不为空
  • in(“属性名”,“集合或数组”)
  • Restrictions.not(Restrictions.in())
  • between(“属性名”,值1,值2)
  • Restrictions.not(Restrictions.between())
  • allEq() 利用Map()来进行多个等于的限制
  • and(条件1,条件2) 或conjunction()
  • or或多个或disjunction()
  • sqlRestriction用SQL限定查询
  • like(“属性名”,“要匹配的值”,“字符匹配模式”)
  • ilike忽略大小写
  • ilike(“属性名”,“要匹配的值”,“字符匹配模式”)
  • 字符匹配模式MatchMode
    • START 以x开头
    • END 以x结束
    • ANYWHERE 包含有x的
    • EXACT 精确匹配
查询出不包含auto开头的数据
cri.add(Restrictions.not(Restrictions.like("contractName", "auto", MatchMode.START)));
相关标签: Hibernate Criteria