spring - 动态运行查询
问题描述
我将我的 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 一样。
解决方案
你可以使用像“?”这样的字符。在您记录的查询上,然后用您的过滤器替换它。示例:在数据库中,您将查询保存为
select id from table_name where id = pid and optional_id in (?)
然后将查询检索到变量并替换“?” 与您要过滤的参数。就像是
varQuery.replace("?", "'AC', 'SU'")
或者
替换(varQuery,“?”,“'AC','SU'”)
推荐阅读
- c# - UWP 与 nswag INotify 继承属性问题
- python - 在 Python 中将数组的字符串表示形式转换为实际数组
- java - Android:导航抽屉中每个片段的不同工具栏
- azure - Azure AD B2C - 通过令牌中的图形 API 获取自定义属性集
- java - 无法连接到jmeter
- swift - 如何使用 XCTest for iOS 14 取消通话
- css - 页面布局的 CSS/引导程序
- ruby-on-rails - Redirect_to 最初折叠但打开折叠部分的页面的一部分?
- azure-devops - 如何终止(而不是取消)错误的 Azure Pipeline 运行、阶段、作业或任务?
- python - 在 Python 中,如何知道何时导入子模块与主模块是强制性的?