gpt4 book ai didi

java - MyBatis 在 Freemarker 中工作吗?

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:50 25 4
gpt4 key购买 nike

我将 MyBatis 配置为与 Freemarker 一起使用,如下所示:

    <setting name="defaultScriptingLanguage" value="FreeMarker"/>
</settings>
<typeAliases>
<typeAlias type="org.mybatis.scripting.freemarker.FreeMarkerLanguageDriver" alias="FreeMarker"/>
</typeAliases>

然后我在 MyBatis 中有一个选择,我需要将其转换为 Freemarker:

<select id="find" parameterType="map" resultType="com.example.MyType">
SELECT
<if test="_databaseId == 'sqlserver'">
TOP (${r"#{rowLimit}"})
</if>
FROM myexampletable
<choose>
<when test="_databaseId == 'oracle'">
WHERE rownum &lt;= ${r"#{rowLimit}"}
</when>
<when test="_databaseId == 'postgresql' || _databaseId == 'h2'">
LIMIT ${r"#{rowLimit}"}
</when>
</choose>
</select>

(为了简洁起见,对上述代码进行了简化。)

问题是这根本不起作用,MyBatis 标签被完全忽略,所有 TOP 和 LIMIT 关键字都出现在同一个 SQL 命令中,无论我使用哪种数据库方言。

我不得不说,在我添加 Freemarker 脚本之前,它运行得非常好。这是一个错误还是一个功能?我可以让两种语言同时在一个脚本中运行吗?

最佳答案

所以我创建了一个 github 问题来解决这个谜题,答案很有帮助,但是否定的:

No, you cannot use both XML and Freemaker syntax in the same statement.

您可以在以下问题中阅读我们的完整评论:

https://github.com/mybatis/freemarker-scripting/issues/33

关于java - MyBatis 在 Freemarker 中工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48424825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com