Я хочу использовать общий шаблон запроса для фильтрации в myBatis-3. Мой шаблон выглядит примерно так:MyBatis Parameter Passing
<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>
Я знаю, что этот способ может достичь того же результата. Я хотел использовать общий шаблон, потому что я не хочу повторять этот «SELECT * FROM» ($ {subquery}) LIMIT $ {page}, 20' – user3502676
@ user3502676 Имея мои ограниченные знания, 'Mybatis' не поддерживает особенность, о которой вы упоминали; и даже если 'Mybatis' поддерживает это, вам не нужно повторять этот довольно простой запрос' SELECT * FROM ($ {subquery}) LIMIT $ {page}, 20', но вы должны повторить это не слишком короткое inlclude' <свойство name = "page" value = "# {page}" /> ', doesn Не так ли? –
Blank