【发布时间】:2016-02-19 02:54:03
【问题描述】:
有没有什么简单的方法可以在参数替换后得到完整的 SQL 语句?
我正在使用 elasticsearch-sql 通过 sql 语句查询弹性搜索,但是我必须提交替换所有参数的查询。
我尝试了 Hibernate Query getQueryString,但这些 sql 字符串没有发生参数替换。
产生以下sql字符串:
“SELECT * FROM USER WHERE NAME=? AND SURNAME=?”
而不是:
"SELECT * FROM USER WHERE NAME='Selva' AND SURNAME='Esra'
欣赏任何更好的想法/想法?
【问题讨论】:
-
不知道你在问什么,你是怎么得到第一个 sql 字符串的?
-
它是一个动态 sql - sql 查询是在运行时基于一些逻辑、前置条件等生成的 不幸的是,当构造 sql 查询时我不能直接替换参数
-
我不确定我是否真的遵循.. 为什么这样的东西不起作用? "SELECT * FROM USER WHERE NAME=? AND SURNAME=?".replace("NAME=?", "NAME='Selva'").replace("SURNAME=?", "SURNAME='Esra'");
-
在您的 Hibernate
Queryobject 上,您不仅可以获取查询字符串,还可以使用getParameters()获取参数列表。然后,您可以将所有?替换为集合中的每个参数。
标签: java oracle hibernate elasticsearch