I want to use a common query template to do filtering in myBatis-3. My template look something like this:
<sql id="filter">
SELECT * FROM (${subquery}) LIMIT ${page}, 20
</sql>
The subquery placeholder can accept any query. I tried to pass the subquery as a parameter. But unfortunately this does not work, the subquery is empty. I wonder it’s possible the property’s value accept dynamic value?
<select
id="find"
parameterType="some.page"
resultMap="map">
<include refid="some.namespace.filter">
<property name="subquery" value="${subquery}"/>
<property name="page" value="#{page}"/>
</include>
</select>
<sql id="subquery">
SELECT * FROM test_table ORDER BY id
</sql>