我正在使用Groovy对我的数据库进行查询,查询工作正常并带回正确的数据,但我在终端中收到此错误。
在Groovy SQL中,请不要在动态表达式周围使用引号 (以$开头)因为这意味着我们不能使用JDBC PreparedStatement等是一个安全漏洞。 Groovy一直在努力 你的错误,但安全漏洞仍在那里。
这是我的查询
sql.firstRow("""select elem
from site_content,
lateral jsonb_array_elements(content->'playersContainer'->'series') elem
where elem @> '{"id": "${id}"}'
""")
如果我将其更改为$ id或
sql.firstRow("""select elem
from site_content,
lateral jsonb_array_elements(content->'playersContainer'->'series') elem
where elem @> '{"id": ?}'
""", id)
我收到以下错误
org.postgresql.util.PSQLException:列索引超出范围: 1,列数:0。
答案 0 :(得分:4)