HQL和Criteria支持的比较运算
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) | 非空值 |
HQL和Criteria支持的范围运算
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 |
HQL和Criteria支持的字符串模式匹配
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’,精确匹配 |
HQL和Criteria支持的逻辑运算
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) | 逻辑非 |
HQL和Criteria支持的集合运算
HQL运算符 | Criteria运算方法 | 说明 |
Is empty | Criterion Restrictions.isEmpty(String propertyName) | 集合为空,不包含任何元素 |
Is not empty | Criterion Restrictions.isNotEmpty(String propertyName) | 集合不为空 |
Query和Criteria接口执行查询语句的方法
方法 | 说明 | 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 | 建立持久化类之间的多对多关联关系 |
转载于:https://blog.51cto.com/zhangzhipeng/1571043