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

在spring中编写自定义n1ql查询

夏骞尧
2023-03-14
@Query("#{#n1ql.selectEntity} WHERE $0 = $1 AND #{#n1ql.filter}")
    public Page<GsJsonStore> matchJson(String term, String value, Pageable pageable);
    //Query
    Page<GsJsonStore> p = repo.matchJson("_object.details.status", "ready", pg);
select * from default where _object.details.status = 'ready';

另外,如何对CouchBaseOperations模板执行n1QL查询?我知道有一个findbyn1ql方法,但我没有找到任何关于它的好文档。有人能解释一下这个怎么用吗?

共有1个答案

琴宾鸿
2023-03-14

查询看起来没问题。您确实使用Spring Data Couchbase存储库持久化GSJSONStore实体,是吗?

为了记录由框架生成和执行的所有查询(包括像您这样的内联查询),您可以在logback.xml配置中像这样配置记录器:

<logger name="org.springframework.data.couchbase.repository.query" level="debug"/>

您将看到执行的查询和在cbq中运行的查询是不一样的,因为至少没有使用WHERE子句。

    null
//a version of the query that is constructed from positional parameters
N1qlQuery queryWithParameter = N1qlQuery.parameterized("SELECT name FROM `beer-sample` WHERE name LIKE $0", JsonArray.from("%dog%"));

//let Spring Data execute the query, projecting to the String class
List<String> beerNamesContainingDog = template.findByN1QLProjection(queryWithParameter, String.class);
 类似资料:
  • 我希望每个请求都能收到一些信息,因此我认为与其为每个请求提供一个函数并分别从请求中获取这些信息,不如使用一个过滤器<所以每一个请求都会通过这个过滤器,我就能得到我想要的 问题是:如何编写自定义筛选器 假设它不像任何预定义的Spring Security过滤器,它是全新的。

  • 我有一个实体 及其存储库 注意:如您所见,intValue不是entity类的成员变量。

  • 我想在日志文件的开头写入自定义头行。自定义头是日期/时间,XML文件名, 在log4j中,我可以通过扩展PatternLayout来创建自定义头。 我为自定义头包含了PatternLayout的log4j属性config和子类CustomFileHeaderLayout。工作很好。 log4j.属性

  • 在 imi 框架中,使用注解可以实现很多功能。比如:路由、模型定义、事务、缓存等等 除了内置的注解以外,如果编写属于自己的注解呢? 这篇教程就来教大家来编写属于自己的注解。 注解定义 注解扫描 imi 是常驻内存运行的,所以冷启动时采用了全量扫描的方式,来实现注解缓存。使用的时候,就和读取配置一样简单高效。 一般需要在配置文件里的beanScan中,配置注解类所在命名空间。在 imi 框架中,涉及

  • 我在这里创建了一个类似于教程的Web应用程序:https://spring.io/guides/tutorials/react-and-spring-data-rest/ . 我已经添加了后gresql数据库,一切正常。我有一个基本查询查找我的存储库中的By用户名(字符串名称),工作正常。我的问题是,由于某种原因我无法创建自定义查询,例如 . 假设我做了一个测试,我只想得到这个语句的值。我说的不能

  • 我想为Atom编写一个命令,它由两个或多个预先存在的命令组成,比如“Select Line”和“Cut”。我该怎么做?