首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MyBatis在共济会里面工作吗?

MyBatis在共济会里面工作吗?
EN

Stack Overflow用户
提问于 2018-01-24 14:27:04
回答 1查看 153关注 0票数 1

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

代码语言:javascript
运行
复制
    <setting name="defaultScriptingLanguage" value="FreeMarker"/>
</settings>
<typeAliases>
    <typeAlias type="org.mybatis.scripting.freemarker.FreeMarkerLanguageDriver" alias="FreeMarker"/>
</typeAliases>

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

代码语言:javascript
运行
复制
<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标记被完全忽略,所有顶部和限制关键字都出现在同一个SQL命令中,无论我使用什么DB方言。

在我添加Freemarker脚本之前,我不得不说它运行得非常好。这是一个bug还是一个特性?我能让两种语言同时在一个脚本中工作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-26 21:08:00

因此,我创建了一个github问题来解决这个谜团,答案是有帮助的,但却是负面的:

不,不能在同一语句中同时使用XML和Freemaker语法。

您可以阅读我们在以下问题上的全部评论:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48424825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档