常用的一些HQL查询语句详解(1)

本文介绍了HQL查询语言中的一些常用技巧,包括简单的全表查询、条件查询、排序、去除重复记录等,通过具体实例展示了如何使用setParameter来设置参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学了HQL查询语句,发现查询内容比较琐碎,现在整理一些比较常用的HQL语句分享给大家,查询的表有一下三种:Category、Topic、Msg;其中 Category与Topic是一对多的关系,Topic与Msg是一对多的关系。解释完毕,现在开始介绍常用的HQL语句:

1.简单的查询Category表里的全部内容:

Query q = session.createQuery("from Category");
 List<Category> categories = (List<Category>)q.list();

2.根据条件(id>5)查询Category表里的所有内容:

Query q = session.createQuery("from Category c where c.id >= 5");
 List<Category> categories = (List<Category>)q.list();

3.按照Category对象里面的name属性进行‘降序’排序,并出去重复(降序关键词:desc),查出表里的所有内容

Query q = session.createQuery("from Category c order by c.name desc");
 List<Category> categories = (List<Category>)q.list();

4. 用distinct去掉重复的行、order by  语句用于根据指定的列对结果集进行排序、查处符合条件的所有内容

Query q = session.createQuery("select distinct c from Category c order by c.name desc");
 List<Category> categories = (List<Category>)q.list();

5.取出id大于min并小于max的所有内容,用setParameter设置HQL语句里的值

Query q = session.createQuery("from Category c where c.id > :min and c.id < :max");
       q.setParameter("min", 2);
        q.setParameter("max", 8);

List<Category> categories = (List<Category>)q.list();

6.同上,setParameter的另外一种用法,设置HQL语句里的值。

Query q = session.createQuery("from Category c where c.id > ? and c.id < ?");
       q.setParameter(0, 2)
        q.setParameter(1, 8);
       List<Category> categories = (List<Category>)q.list();

7.查询所有内容用order by 按照name进行排序、desc进行倒序;

Query q = session.createQuery("from Category c order by c.name desc");
        q.setMaxResults(4);//设置截取查询结果的最大值
        q.setFirstResult(2);//设置从几个开始查询


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值