首页 > 解决方案 > 将参数传递给 StringTemplate 函数

问题描述

假设我有

@SqlQuery("SELECT :someField FROM myTable")
String fetchField(@Bind("someField") final String columnName);

我想将它移动到一个 stg 文件中UseStringTemplate3StatementLocator,然后从那里使用组文件和模板。我需要将此参数传递给另一个函数,即

@SqlQuery
String fetchField(@Bind("someField") final String columnName);

// in the stg file
fetchField() ::= <<
<someOtherMethod(:someField)> <! I need to pass someField to this other function ->
>>

someOtherMethod(columnName) ::= <<
 ... All the query is generated here
>>

这是行不通的。我该怎么做呢?

标签: javastringtemplatejdbi

解决方案


您需要使用@Define注解为StringTemplate4提供属性,然后将其用作<someField>. 但是,通过这种方式,编写的查询将对 SQL 注入开放


推荐阅读