当前位置: 首页 > 知识库问答 >
问题:

Micronaut数据@查询的计数查询示例

公羊喜
2023-03-14

在使用Micronaut数据执行显式查询(@query)时,是否可以给出一个countQuery示例来实现分页?在中没有示例https://micronaut-projects.github.io/micronaut-data/latest/guide/#explicitQueries

我必须提出一个如下的问题

@Query("From UserRelation where userId = :userId and itemId=:itemId", countQuery = <count query here>)

共有1个答案

单嘉泽
2023-03-14

你可以这样做:

@Query(
  value = "select relation_ from UserRelation relation_ where relation_.userId = :userId and relation_.itemId = :itemId", 
  countQuery = "select count(relation_) from UserRelation relation_ where relation_.userId = :userId and relation_.itemId = :itemId"
)

count查询只有一个更改是相同的,它是SELECT子句中的count()函数

 类似资料:
  • 所有的查询条件不区分调用顺序,但必须在调用Get,Exist, Sum, Find,Count, Iterate, Rows这几个函数之前调用。同时需要注意的一点是,在调用的参数中,如果采用默认的SnakeMapper所有的字符字段名均为映射后的数据库的字段名,而不是field的名字。

  • 概述 使用find()方法在MongoDB集合中查询数据。MongoDB所有的查询范围都是单个集合的。也就是说MongoDB不能跨集合查询数据。 查询可以返回集合中的所有文档,或者仅仅返回指定过滤条件的文档。你可以指定一个过滤条件或才一个判断条件作为参数传递给find()方法。 find()方法在一个游标中返回所有的结果集,通过游标的迭代可以输出所有文档。 查询集合中的所有文档 查询集合中的所有文

  • 获取单个数据 获取单个数据的方法包括: 取出主键为1的数据 $user = UserModel::get(1); echo $user->user_nickname; // 使用数组查询 $user = UserModel::get(['user_nickname' => '老猫']); // 使用闭包查询 $user = UserModel::get(function($query){

  • 数据库操作使用 Db类封装方法,请事先在引入 Db类 use think\Db; 以上可以引入 Db,后面的文档不再说明,直接使用; 查询一个数据使用: // table方法必须指定完整的数据表名 Db::name('user')->where('id',1)->find(); find 方法查询结果不存在,返回 null 查询数据集使用: Db::name('user')->where('s

  • 获取单个数据 获取单个数据的方法包括: 取出主键为1的数据 $user = UserModel::find(1); echo $user->user_nickname; 如果你是在模型内部,请不要使用$this->user_nickname的方式来获取数据,请使用$this->getAttr('user_nickname') 替代。 或者在实例化模型后调用查询方法 $user = new Use

  • 数据库操作使用 Db类封装方法,请事先在引入 Db类 use think\facade\Db; 以上可以引入 Db,后面的文档不再说明,直接使用; 查询一个数据使用: // table方法必须指定完整的数据表名 Db::name('user')->where('id',1)->find(); find 方法查询结果不存在,返回 null 查询数据集使用: Db::name('user')->w