方法
说明
Restrictions.eq
=
Restrictions.allEq
利用Map来进行多个等于的限制
Restrictions.gt
>
Restrictions.ge
>=
Restrictions.lt
<
Restrictions.le
<=
Restrictions.ne
<>
Restrictions.between
BETWEEN
Restrictions.like
LIKE
Restrictions.in
in
Restrictions.and
and
Restrictions.or
or
Restrictions.sqlRestriction
用SQL限定查询
有空再添加上,代码示例。
QBC常用限定方法
Restrictions.eq --> equal,等于.
Restrictions.allEq --> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions.eq的效果
Restrictions.gt --> great-than > 大于
Restrictions.ge --> great-equal >= 大于等于
Restrictions.lt --> less-than, < 小于
Restrictions.le --> less-equal <= 小于等于
Restrictions.between --> 对应SQL的between子句
Restrictions.like --> 对应SQL的LIKE子句
Restrictions.in --> 对应SQL的in子句
Restrictions.and --> and 关系
Restrictions.or --> or 关系
Restrictions.isNull --> 判断属性是否为空,为空则返回true
Restrictions.isNotNull --> 与isNull相反
Restrictions.sqlRestriction --> SQL限定的查询
Order.asc --> 根据传入的字段进行升序排序
Order.desc --> 根据传入的字段进行降序排序
MatchMode.EXACT --> 字符串精确匹配.相当于"like 'value'"
MatchMode.ANYWHERE --> 字符串在中间匹配.相当于"like '%value%'"
MatchMode.START --> 字符串在最前面的位置.相当于"like 'value%'"
MatchMode.END --> 字符串在最后面的位置.相当于"like '%value'"
例子
查询年龄在20-30岁之间的所有学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.between("age",new Integer(20),new Integer(30)).list();
查询学生姓名在AAA,BBB,CCC之间的学生对象
String[] names = {"AAA","BBB","CCC"};
List list = session.createCriteria(Student.class)
.add(Restrictions.in("name",names)).list();
查询年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.isNull("age")).list();
查询年龄等于20或者年龄为空的学生对象
List list = session.createCriteria(Student.class)
.add(Restrictions.or(Restrictions.eq("age",new Integer(20)),
Restrictions.isNull("age")).list();
--------------------------------------------------------------------
使用QBC实现动态查询
public List findStudents(String name,int age){
Criteria criteria = session.createCriteria(Student.class);
if(name != null){
criteria.add(Restrictions.liek("name",name,MatchMode.ANYWHERE));
}
if(age != 0){
criteria.add(Restrictions.eq("age",new Integer(age)));
}
criteria.addOrder(Order.asc("name"));//根据名字升序排列
return criteria.list();
}
-----------------------------------------------------------------------------------
今天用了写hibernate高级查询时用了Restrictions(当然Expression也是可以以的)这个类.感觉不错.
下面的代码写的不易读.其实核心就是一句
Restrictions.or(Restrictions.like(),Restrictions.or(Restrictions.like,........))
里面的or可以无限加的.还是比较好用
Session session = getHibernateTemplate().getSessionFactory()
.openSession();
Criteria criteria = session.createCriteria(Film.class);
List<Film> list = criteria.add(
Restrictions.or(Restrictions.like("description", key,MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like("name", key,MatchMode.ANYWHERE),
Restrictions.or( Restrictions.like("direct", key,MatchMode.ANYWHERE),
Restrictions.or(Restrictions.like("mainplay",key,MatchMode.ANYWHERE),
Restrictions.like("filearea", key,MatchMode.ANYWHERE)))))).list();
session.close();
return list;
分享到:
相关推荐
1 基本用法 criterion = LossCriterion() #构造函数有自己的参数 loss = criterion(x, y) #调用标准时也有参数 2 损失函数 2-1 L1范数损失 L1Loss 计算 output 和 target 之差的绝对值。 torch.nn.L1Loss...
批判 用于比较Criterion运行的... 如果对Criterion内部格式进行了重大更改,则该项目将跟踪Criterion的最新版本,但是还将尝试在合理范围内继续使用较旧的版本。 例子 用法 除了提供作为位置参数的额外数据外,critcm
Hibernate 提供了操纵对象和相应的 RDBMS 表中可用的数据的替代方法。一种方法是标准的 API,它允许你建立一个标准的可编程查询对象来应用过滤规则和逻辑条件。 Hibernate Session 接口提供了 createCriteria() ...
使用此扩展程序,您将获得壁纸,艺术品,Criterion Fortnite皮肤的图纸以及更多其他内容。 卸载要从浏览器中删除扩展名,请执行以下步骤:-在屏幕右上角找到三个垂直点图标-转到“设置”。 -在出现的菜单中,选择...
条件允许您使用(构建,合并,重用...)作为数据SQL条件条件( x = 5 AND y IS NOT NULL ...)(再见字符串连接)并将其编译为SQL:它具有简洁,一个简单而优雅的函数式API,只需实现两个函数即可,并且:您始终...
详细介绍了criteria的使用方法和许多相关查询技巧
这是 Dimitris Bertsimas、Agni Orfanoudaki 和 Holly Wiberg 的论文“可解释的聚类:一种优化方法”的聚类算法的文档库。这种方法 ICOT 的目的是生成可...OCT 选项使用用户选择的标签(即来自 K-means)来拟合最优分类
用法 以jl格式保存电影列表: scrapy crawl films -O films.jl 从列表中随机选择一部影片: ./random_film.py -f films.jl 在默认浏览器中转到随机标准电影页面: ./random_film.py -f films.jl -b 导出格式 根据...
GitHub动作,将使用项目的基准比较PR和master之间的基准输出。 例子 用法 在您的.github/workflows/pull_request.yml创建一个.github/workflows/pull_request.yml文件: on : [pull_request] name : benchmark ...
但是其模型阶次的估计,除了HOSA工具箱里的arorder函数外,没有现成的函数可用,arorder函数是基于矩阵SVD分解的阶次估计方法,为了比较各种阶次估计方法的区别,下面的函数使用了'FPE', 'AIC', 'MDL', 'CAT'集中...
用法: from adaptiveWingLoss import AdaptiveWingLoss # Instantiate the AdaptiveWingLoss like the way that instantiate MSELoss criterion = AdaptiveWingLoss(whetherWeighted=True) # criterion = torch....
可以使用人口平价损失和均等赔率损失。 该项目是的一部分。 访问我们的。 用法 dp_loss = DemographicParityLoss ( sensitive_classes = [ 0 , 1 ], alpha = 100 ) criterion = nn . BCEWithLogitsLoss () . . . ...
如果您想要更多有关如何使用Criterion的示例,则可以从他的演讲之一中查看Geographer的源代码。用法进入正确的文件夹,然后有两个选择: make :“手动”进行构建和执行测试。 make tests_run :使用Criterion进行...
有时候你希望在一个嵌套循环的外层循环中执行Continue操作。例如,假设你有一连串的标准,和一堆items。 并且你希望找到一个符合每个标准的item。 代码如下:match = null;foreach(var item in ...}有很多方法可以实
我们在不同的真实和合成数据集上使用不同的索引(即CH,KL,Silhouette,Gap,CSP)和建议的方法进行实验,以估计数据集中的正确组数。 在真实和合成数据集上的实验结果表明了该方法的良好性能。 关键字:数据深度...
使用 torch.optim,必须构造一个 optimizer 对象。这个对象能保存当前的参数状态并且基于计算梯度更新参数。 例如: optimizer = optim.SGD(model.parameters(), lr = 0.01, momentum=0.9) optimizer = optim.Adam...
通用用法类似于 ,参数使用相同的语法。 唯一的区别是确保--task是style-transfer,而arch是sty-transformer 。 使用监督下的配对数据进行训练: train.py usage: train.py [-h] DIR --task style_transfer --...
或者,您可以使用它将相关新闻文章分组在一起,而无需事先确定要使用的类别。 该算法将自动找出最佳组。 k均值中的“ k”是一个数字。 该算法假定数据中存在k个中心,各个数据元素分散在周围。 最接近这些所谓质心...
DEFAULT_RANDOM_DECISION_TREE_CRITERION = 'entropy' DEFAULT_SPLIT_RATIO = 0.8 对于更可配置的方法,请执行: python main . py - - help 哪个应该给您以下结果: Experiments with Machine Learning ...