如何在数据库客户端 spring boot webflux 中按数组设置值的位置
How to set where in values by array in Database client spring boot webflux
我在 Spring boot.I 中使用 webflux 和数据库客户端有这样的字符串类型
String status="报价,订单,购买";
我想在(where in)中设置这些值 caluse.Code 是这样的。
String status="Quoted,Order,Bought";
@Override
public Flux<Quotation> statusCreatedBy(Pageable pageable, String createdBy,String status) {
RowsFetchSpec<Quotation> list =db.sql("SELECT e.id AS e_id, e.amount AS e_amount, e.description AS e_description FROM quotation e WHERE e.created_by = '"+createdBy+"' and e.name in ('"+status+"') LIMIT "+pageable.getPageSize()+" OFFSET "+pageable.getOffset()).map(this::process);
return list.all();
}
我得到了 sql 这样的语法。
where e.name in ('Quoted,Order,Bought')
我想要的是
where e.name in ('Quoted','Order','Bought')
请指导我修复 this.Also 我不知道数组的数量 values.Sometime 状态可以是 4 或 5 值,具体取决于 user.For 示例,
String status='Quoted,Order,Bought,Cancel,Transfer' or Status='Quoted'
谢谢
使用
将 ","
替换为 "','"
status.replace(",", "','")
所以你的陈述看起来像:
"… and e.name in ('" + status.replace(",", "','") + "') …"
虽然手动构建 SQL 可行,但最佳做法(更容易恕我直言)是使用库将变量替换为占位符。考虑使用 JPA、Hibernate 等,
.
我在 Spring boot.I 中使用 webflux 和数据库客户端有这样的字符串类型 String status="报价,订单,购买"; 我想在(where in)中设置这些值 caluse.Code 是这样的。
String status="Quoted,Order,Bought";
@Override
public Flux<Quotation> statusCreatedBy(Pageable pageable, String createdBy,String status) {
RowsFetchSpec<Quotation> list =db.sql("SELECT e.id AS e_id, e.amount AS e_amount, e.description AS e_description FROM quotation e WHERE e.created_by = '"+createdBy+"' and e.name in ('"+status+"') LIMIT "+pageable.getPageSize()+" OFFSET "+pageable.getOffset()).map(this::process);
return list.all();
}
我得到了 sql 这样的语法。
where e.name in ('Quoted,Order,Bought')
我想要的是
where e.name in ('Quoted','Order','Bought')
请指导我修复 this.Also 我不知道数组的数量 values.Sometime 状态可以是 4 或 5 值,具体取决于 user.For 示例,
String status='Quoted,Order,Bought,Cancel,Transfer' or Status='Quoted'
谢谢
使用
将","
替换为 "','"
status.replace(",", "','")
所以你的陈述看起来像:
"… and e.name in ('" + status.replace(",", "','") + "') …"
虽然手动构建 SQL 可行,但最佳做法(更容易恕我直言)是使用库将变量替换为占位符。考虑使用 JPA、Hibernate 等, .