飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

Hibernate-Restrictions用法

时间:2021-12-14  作者:匿名  

Restrictions用法

文章分类:Java编程

学习下Hibernate的Criteria

  1. 方法说明

方法 说明
域名
域名q 利用Map来进行多个等于的限制
域名
域名 >=
域名
域名 <=
域名een BETWEEN
域名 LIKE
域名 in
域名 and
域名 or
域名estriction 用SQL限定查询

2,QBC常用限定方法

域名 –> equal,等于.

域名q –> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个域名的效果

域名 –> great-than > 大于

域名 –> great-equal >= 大于等于

域名 –> less-than, < 小于

域名 –> less-equal <= 小于等于

域名een –> 对应SQL的between子句

域名 –> 对应SQL的LIKE子句

域名 –> 对应SQL的in子句

域名 –> and 关系

域名 –> or 关系

域名ll –> 判断属性是否为空,为空则返回true

域名tNull –> 与isNull相反

域名estriction –> SQL限定的查询

域名 –> 根据传入的字段进行升序排序

域名 –> 根据传入的字段进行降序排序

域名T –> 字符串精确匹配.相当于”like ‘value\'”

域名HERE –> 字符串在中间匹配.相当于”like ‘%value%\'”

域名T –> 字符串在最前面的位置.相当于”like ‘value%\'”

域名 –> 字符串在最后面的位置.相当于”like ‘%value\'”

例子
查询年龄在20-30岁之间的所有学生对象

List list = 域名teCriteria(域名s)
      .add(域名een("age",new Integer(20),new Integer(30)).list();

 
查询学生姓名在AAA,BBB,CCC之间的学生对象

String[] names = {"AAA","BBB","CCC"};
List list = 域名teCriteria(域名s)
      .add(域名("name",names)).list();

 
查询年龄为空的学生对象

List list = 域名teCriteria(域名s)
      .add(域名ll("age")).list();

 
查询年龄等于20或者年龄为空的学生对象

List list = 域名teCriteria(域名s)
      .add(域名(域名("age",new Integer(20)),
                 域名ll("age")).list();

——————————————————————–
使用QBC实现动态查询

public List findStudents(String name,int age){

 Criteria criteria = 域名teCriteria(域名s);
 if(name != null){
  域名(域名("name",name,域名HERE));
 }
 if(age != 0){
  域名(域名("age",new Integer(age)));
 }
 域名rder(域名("name"));//根据名字升序排列
 return 域名();
}

———————————————————————————–

今天用了写hibernate高级查询时用了Restrictions(当然Expression也是可以以的)这个类.感觉不错.
下面的代码写的不易读.其实核心就是一句
域名(域名(),域名(域名,……..))
里面的or可以无限加的.还是比较好用

Session session = getHibernateTemplate().getSessionFactory()
                .openSession();
        Criteria criteria = 域名teCriteria(域名s);
        List<Film> list = 域名(
            域名(域名("description", key,域名HERE),
            域名(域名("name", key,域名HERE),
                域名(    域名("direct", key,域名HERE),
                域名(域名("mainplay",key,域名HERE),
                        域名("filearea", key,域名HERE)))))).list();

        域名e();
        return list;
标签:字符串JAVA
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。