mihuajun/rocket-api

是否支持对象数组传参

JNSimba opened this issue · 5 comments

sql = """
select * from user where id in (#{idList})
"""

您好,数组传参时会自动转成逗号拼接,如果是对象数组呢?

[{
"name":"zhangsan",
"age":"12"
},{
"name":"lisi",
"age":"14"
}]

期望转换的sql为:

select * from table where ( name = "zhangsan" and age=12) or (  name = "lisi" and age=14)

好想法,那我就应该写成『select * from table where #{queryObject}』,如果按这种语法的话,dsl语法,你会不会还想要通过对象构建,指定返回的字段或者别名

比如入参是{"fields":{"name":1,"sex":1},"query":{"name":"123"}}

『select * from table where #{queryObject}』,我觉得这里的#{queryObject}参数应该可以直接拼接成sql语句,如果参数是 {"fields":{"name":1,"sex":1},"query":{"name":"123"}} ,如何传递数组和逻辑关系呢?是否可以参考mybatis的 语法?

在最新版本中,支持#{groovy语言},你可以使用#{customMethod(params)} 自定义方法的形式来解析对象