如何在弹簧数据中编写 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 启动应用程序中实现它不起作用。

下面是我的弹簧靴@query薄荷

@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;

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

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

如果你想寻找这样的值

v LIKE $1    ===> supply $1 as "%actualvalue%"
v LIKE "%" || $1 || "%" 

最新更新