HQLCriteria支持的比较运算

HQL运算符

Criteria运算方法

说明

=

SimpleExpression Restrictions.eq(String propertyName,Object value)

等于

<> 

SimpleExpression Restrictions.ne(String propertyName,Object value)

不等于

SimpleExpression Restrictions.gt(String propertyName,Object value)

大于

>=

SimpleExpression Restrictions.ge(String propertyName,Object value)

大于等于

SimpleExpression Restrictions.lt(String propertyName,Object value)

小于

<=

SimpleExpression Restrictions.le(String propertyName,Object value)

小于等于

Is null

Criterion Restrictions.isNull(String propertyName)

等于空值

Is not null

Criterion Restrictions.isNotNull(String propertyName)

非空值

 

HQLCriteria支持的范围运算

HQL运算符

Criteria运算方法

说明

In(列表)

Criteria Restrictions.in(String propertyName,Collection values)

Criteria Restrictions.in(String propertyName,Object[] values)

等于列表中的某一个值

Not in(列表)

Criterion Restrictions.not(Restrictions.in())

不等于列表中的任何一个值

Between 1 and 2

Criterion Restrictions.between(String propertyName,Object lo,Object hi)

大于等于值1并且小于等于值2

Not between 1 and 2

Criteria Restrictions.not(Restrictions.between())

小于值1或者大于值2

HQLCriteria支持的字符串模式匹配

HQL运算符

Criteria运算方法

说明

like

SimpleExpression Restrictions.like(String propertyName,Object value)

SimpleExpression Restrictions.like(String propertyName,Object value,MatchMode motchMode)

字符串模式匹配

Criterion Restrictions.ilike(String propertyName,Object value)

Criterion Restrictions.ilike(String propertyName,String value,MatchMode matchMode)

字符串模式匹配,同时忽略大小写

MatchMode类的静态常量

模式

举例

说明

MatchMode.START

Restrictions.like(“empName”,”s”,MatchMode.START)

员工姓名以‘s’开头

atchMode.END

Restrictions.like(“empName”,”s”,MatchMode.END)

员工姓名以‘s’结尾

MatchMode.ANYWHERE

Restrictions.like(“empName”,”s”,MatchMode.ANYWHERE)

员工姓名中包含‘s’

MatchMode.EXACT

Restrictions.like(“empName”,”s”,MatchMode.EXACT)

员工姓名中等于‘s’,精确匹配

HQLCriteria支持的逻辑运算

HQL运算符

Criteria运算方法

说明

and

LogicalExpression Restrictions.and(Criterion lhs,Criterion rhs)

逻辑与

Or

LogicalExpression Restrictions.or(Crierion lhs,Criterion rhs)

或者

Disjunction Restrictions.disjunction()

逻辑或

not

Criterion Restrictions.not(Criterion expression)

逻辑非

HQLCriteria支持的集合运算

HQL运算符

Criteria运算方法

说明

Is empty

Criterion Restrictions.isEmpty(String propertyName)

集合为空,不包含任何元素

Is not empty

Criterion Restrictions.isNotEmpty(String propertyName)

集合不为空

QueryCriteria接口执行查询语句的方法

方法

说明

Query 接口

Criteria接口

List list()

返回List集合

支持

支持

Iterator iterate()

返回Iterator迭代器

支持

不支持

Object uniqueResult()

返回唯一对象

支持

支持

Projections常用集合查询方法

方法

说明

PropertyProjection Projections.groupProperty(String propertyName)

分组

Projection Projections.rouCount()

统计记录数

AggregateProjection Projections.avg(String propertyName)

统计平均值

AggregateProjection Projections.max(String propertyName)

统计最大值

AggregateProjection Projections.min(String propertyName)

统计最小值

CountProjection Projections.count(String propertyName)

统计某一字段的非空记录数

AggregateProjection Projections.sumring propertyName)

正对某一字段求和

配置持久化类的常用注解

注解

含义和作用

@Entity

将一个类声明为一个持久化类

@Id

声明了持久化类的标识属性(相当于数据表的主键)

@GeneratedValue

定义标识属性值的生成策略

@Table

为持久化类映射指定表(table)、目录(catalog)和schema的名称。默认值:持久化类名,不带包名

@UniqueConstraint

定义表的唯一约束

@Lob

表示属性将被持久化为Blob或者Clob类型

@Column

将属性映射到列

Transient

忽略这些字段和属性,不用持久化到数据库

对象关联关系的常用注解

注解

含义和作用

@OneToOne

建立持久化类之间的一对一关联关系

@OneToMany

建立持久化类之间的一对多关联关系

@ManyToOne

建立持久化类之间的多对一关联关系

@ManyToMany

建立持久化类之间的多对多关联关系