首页 > 解决方案 > 动态运行查询

问题描述

我将我的 Sql 查询作为值存储在 MongoDb 数据库中的一个关键属性中。我能够从 MongoDb 数据库中获取记录。我想在从那里检索它之后运行关联的 sql 查询。记录格式如下:

     {

                  "Id":2,

                  "Type":"SqlQuery",

                  "Syntax":"select id from table_name where id = pid and optional_id in ('AC','SU')",

                  "ValueSpecifiers":{

                        "id":"request.id"
                  }
 }

我是springboot的初学者。如果有人可以指导我一些资源或正确的方向,那将非常有帮助。我很困惑是否可以通过在此处动态设置一些过滤器参数(如id)来命中查询,因为它随请求对象而变化。我想要在不扩展 crud 存储库的情况下动态运行它。就像通过本机查询访问 db 一样。

标签: springspring-bootspring-data-jpa

解决方案


你可以使用像“?”这样的字符。在您记录的查询上,然后用您的过滤器替换它。示例:在数据库中,您将查询保存为

select id from table_name where id = pid and optional_id in (?)

然后将查询检索到变量并替换“?” 与您要过滤的参数。就像是

varQuery.replace("?", "'AC', 'SU'")

或者

替换(varQuery,“?”,“'AC','SU'”)


推荐阅读