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

问题描述 投票:0回答:1

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

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

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

在Couchbase服务器中,我实现了以下查询,

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;

java spring-boot n1ql spring-data-couchbase
1个回答
0
投票

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

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

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

v LIKE $1    ===> supply $1 as "%actualvalue%"
v LIKE "%" || $1 || "%" 
© www.soinside.com 2019 - 2024. All rights reserved.