Complètement cache SQL , manière orientée objet d'enquête, appelée QBC / QBE .
déclaration
Critères Critères = session.createCriteria (POJO 类名); //de
méthode commune
méthode commune |
explication |
équivalent SQL |
session.createCriteria (POJO 类名); |
Sélectionnez la table |
de |
criteria.createCriteria ( "POJO 类名"); |
Choisir une autre table |
de |
setProjection (Projection) |
Choisissez une colonne statistique |
sélectionner |
setProjection (ProjectionList) |
Sélectionnez plusieurs colonnes |
sélectionner |
setProjection (Propriété) |
Sélectionnez une colonne |
sélectionner |
setProjection (PropertyProjection) |
paquet |
par groupe |
ajouter (Criterion) |
Ajouter une requête |
où |
AddOrder (ordonnance) |
Ajouter une condition de tri |
commandé par |
createAlias () |
Créer une requête d'association |
joindre joint gauche jointure droite jointure interne |
createCriteria (String) |
conditions connexes |
sur |
setFirstResult (int) |
A commencé à revenir dès les premières |
limiter le premier paramètre |
setMaxResults (int) |
Retour plusieurs données |
limiter deuxième paramètre |
Projection
opération de projection, contient des fonctions statistiques
以下为Projections的常用静态方法(Projections包含静态方法,返回Projection对象)
常用方法 |
说明 |
avg(String) |
该列平均值 |
count(String) |
该列行数 |
countDistinct(String) |
该列去重后行数 |
distinct(Projection) |
去重 |
max(String) |
该列最大值 |
min(String) |
该列最小值 |
rowCount() |
结果行数 |
sum(String) |
该列求和 |
projectionList() |
创建Projection列表 |
ProjectionList
通过Projection.projectionList()静态方法
Property
表示一列
Property.forName(String) |
表示一列 |
PropertyProjection
以改列分组
Projections.groupProperty(String);
Order
以该字段为序排序
以下为静态方法
常用方法 |
说明 |
asc(String) |
增序 |
desc(String) |
降序 |
ignoreCase() |
忽略大小写 |
Criterion
Criterion表示查询条件,来自Restrictions类的静态方法
Restrictions类的常用方法
常用方法 |
说明 |
描述 |
eq(String, Object) |
使字段名等于 值 |
string = object |
ne(String, Object) |
|
string != object |
allEq(Map) |
多个=条件 |
key1=value1 and key2=value2 and … |
gt(String, Object) |
|
> |
ge(String, Object |
|
>= |
lt(String, Object) |
|
< |
le(String, Object) |
|
<= |
between(String, Object, Object |
使字段名在两个值之间 |
string between object1 and object2 |
in(String, Collection) |
|
in(value1, value2, …) |
like(String, Object) |
支持通配符 |
like("a%") |
ilike(String, Object) |
like不区分大小写 |
|
DetachedCriteria
Criteria来自session,脱离session后即失效。
DetachedCriteria实现在session外部创建条件
声明
DetachedCriteria d = DetachedCriteria.forClass(POJO类名);
执行
需将DetachedCriteria转换为Criteria后再执行
Criteria c = d.getExecutableCriteria(session);
执行查询
List<T> criteria.list();