Передача параметров MyBatis
Я хочу использовать общий шаблон запроса для фильтрации в myBatis-3. Мой шаблон выглядит примерно так:
<sql id="filter">
SELECT * FROM (${subquery}) LIMIT ${page}, 20
</sql>
Заполнитель подзапроса может принять любой запрос. Я попытался передать подзапрос в качестве параметра. Но, к сожалению, это не работает, подзапрос пуст. Интересно, возможно ли значение свойства принимать динамическое значение?
<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>
1 ответ
Почему бы тебе просто не изменить другой способ сделать это? Я не думаю, что функция, которую вы сказали, поддерживается MyBatis
, может быть, вы можете сделать это следующим образом;
<select
id="find"
parameterType="some.page"
resultMap="map">
SELECT * FROM (<include refid="subquery">) t LIMIT ${page}, 20
</select>
<sql id="subquery">
SELECT * FROM test_table ORDER BY id
</sql>