有没有办法使用 MyBatis 即时创建 sql 查询?具体化:我有一个查询,其中一部分(但不是参数)需要在运行时创建:
with dummy (id) as (
values (#{rangeEnd}) union all
select id - 1 from dummy where id - 1 >= #{rangeStart}
).......
第二部分可以用作参数,但是,当我尝试查询时出现异常:
[SQL0584] NULL or parameter marker in VALUES not allowed.
使用普通的 JDBC,我使用MessageFormat
:
PreparedStatement ps = connection.prepareStatement(
MessageFormat.format(MY_QUERY, currentRange.getRangeEnd()))
,但我还没有找到如何使用 MyBatis 来实现它的方法。