开发者社区> 问答> 正文

如何在Spring数据中编写Couchbase N1QL查询?

我想写一个查询来查找包含子字符串的字符串列表,例如

"xyz-1",
"xyz-2",
"xyz-3",
"xyz-4".....

上面是我需要查找的字符串列表,但我仅输入了xyz而不是全名xyz-1。

在沙发床服务器中,我实现了如下查询,

SELECT * FROM test
WHERE ANY v IN namelist SATISFIES v LIKE '%xyz%' END;

这会给我所有包含xyz的列表名称。但是在Spring Boot应用程序中实现它不起作用。

下面是我的弹簧靴@query menthod

@Query("Select * from `test` where #{#n1ql.filter} And ANY v In namelist SATISFIES v Like '%$1'% END within #{#n1ql.bucket}")
List<String> findBynameList(String name);

下面是我的pojo课,

@Id
    private String car_id;
    @Field
    @NotNull
    private String name;
    @Field
    private List<String> namelist;

展开
收起
垚tutu 2019-11-29 23:09:35 885 0
1 条回答
写回答
取消 提交回答
  • #include

    LIKE的右侧必须是字符串或查询名称/字符串的位置参数。

    如果查询名称/位置参数在字符串中不会被替换。您有'%$ 1'%,它将查找$ 1而不是值。

    如果您想寻找价值,可以这样写

    v LIKE $1    ===> supply $1 as "%actualvalue%"
    v LIKE "%" || $1 || "%"
    
    2019-11-29 23:09:47
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多