如何查询MyBatis<sql>片段的静态参数值?
How to query the value of a static parameter of MyBatis <sql> fragment?
在MyBatis中是否可以结合静态参数化<sql>
reusable fragments with <if>
dynamic SQL?
如何查询static的值(=not来自Java方法,而是直接在mapper XML) MyBatis <sql>
片段的参数?
问题是不是如何在MyBatis中比较String
值,而是如何查询一个static的值 参数.
我正在尝试使用静态参数 source
调用可重用元素 select-part
。
我尝试了各种写 <if test="...">
条件的方法,但都失败了:
<if test="source == 'active'">
<if test="${source} == 'active'">
<if test="#{source} == 'active'">
简化的映射器 XML 是这样的:
<sql id="select-part">
SELECT d.field1, d.field2, ..., d.fieldN
<if test="${source} == 'active'">
, null AS archivedDate
FROM active_table d
</if>
<if test="${source} == 'archive'">
, d.achived AS archivedDate
FROM archive_table d
</if>
LEFT JOIN ...
ORDER BY ...
</sql>
<select id="fetchData" resultMap="Data">
<include refid="select-part">
<property name="source" value="active"/>
</include>
UNION ALL
<include refid="select-part">
<property name="source" value="archive"/>
</include>
</select>
不幸的是,当前的实现有一个 "bug",它不会替换 SQL 片段中 XML 属性中的占位符。仅替换文本节点中的占位符。我认为这是应该修复的实现中的错误。我已经在我的 fork 中实现了它:https://github.com/kmoco2am/mybatis-3 我会尝试推送到原始存储库。
在MyBatis中是否可以结合静态参数化<sql>
reusable fragments with <if>
dynamic SQL?
如何查询static的值(=not来自Java方法,而是直接在mapper XML) MyBatis <sql>
片段的参数?
问题是不是如何在MyBatis中比较String
值,而是如何查询一个static的值 参数.
我正在尝试使用静态参数 source
调用可重用元素 select-part
。
我尝试了各种写 <if test="...">
条件的方法,但都失败了:
<if test="source == 'active'">
<if test="${source} == 'active'">
<if test="#{source} == 'active'">
简化的映射器 XML 是这样的:
<sql id="select-part">
SELECT d.field1, d.field2, ..., d.fieldN
<if test="${source} == 'active'">
, null AS archivedDate
FROM active_table d
</if>
<if test="${source} == 'archive'">
, d.achived AS archivedDate
FROM archive_table d
</if>
LEFT JOIN ...
ORDER BY ...
</sql>
<select id="fetchData" resultMap="Data">
<include refid="select-part">
<property name="source" value="active"/>
</include>
UNION ALL
<include refid="select-part">
<property name="source" value="archive"/>
</include>
</select>
不幸的是,当前的实现有一个 "bug",它不会替换 SQL 片段中 XML 属性中的占位符。仅替换文本节点中的占位符。我认为这是应该修复的实现中的错误。我已经在我的 fork 中实现了它:https://github.com/kmoco2am/mybatis-3 我会尝试推送到原始存储库。