0

我试图将一些 sql 插入语句保存到文件中以用于测试。我想为此使用flyway 占位符,但我找不到任何。

Java中的一些例子:

var sqlTXT = sql.insertInto(table("TBLNAME"))
     .set(field("strCol"), field("strVal").toString())
     .set(field("placeHolderCol"), field(inline("${flyway:user}")))
     .getSQL(ParamType.INLINED);

这将产生如下 SQL 字符串:

insert into TBLNAME (strCol, placeHolderCol) values ('strVal', '${flyway:user}')

我正在寻找这样的东西

insert into TBLNAME (strCol, placeHolderCol) values ('strVal', ${flyway:user})

所以flyway可以替换${flyway:user}和插入用户名。

有什么方法可以像这样呈现 sql 还是我必须“手动”进行?

4

1 回答 1

2

Flyway 的占位符与任何其他“供应商特定”的 SQL 语法没有什么不同,jOOQ 不支持开箱即用,因此纯 SQL 模板可以解决问题。

只需使用

field("${flyway:user}")

不要使用DSL.inline(),它用于创建“内联值”(例如字符串文字)。

于 2020-08-24T18:25:13.730 回答