Когда Mybatis использует WHERE IF DES C и LIMIT, IDEA показывает Unable для разрешения таблицы «LIMIT» - PullRequest
0 голосов
/ 07 марта 2020

Пожалуйста, прости мой бедный Энгли sh ...

Я хочу использовать spring, spring- mvc и mybatis для создания веб-сайта.

Когда я пишу mybatis. xml как показано ниже

    <select id="queryShopList" resultMap="shopMap">
        SELECT * FROM tb_shop s
        <where>
            <if test="shopCondition.area != null">
                AND s.area_id = #{shopCondition.area.areaId}
            </if>
        </where>
        ORDER BY priority DESC LIMIT 0, 5
    </select>

LIMIT был отмечен красным, и IDEA показывает мне «Невозможно разрешить таблицу« LIMIT »», но этот преобразователь все еще может использоваться для прохождения юнит-теста.

и я пытался, когда я удаляю содержимое <where>...</where> или <if>...</if>, даже DESC, ошибка исчезает.

Я думаю, может быть, в этой ситуации. IDEA считает LIMIT таблицей и выдает ошибку.

Но я не знаю, как изменить это сообщение об ошибке. Я понятия не имею об этой проблеме ...

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Используйте "Generi c" SQL язык в инъекции этого xml фрагмента:

enter image description here

IDE не будет проверять таблицы для разрешения, а просто выделит sql ключевых слов.

0 голосов
/ 07 марта 2020

Попробуйте это. Может быть, условие «если» неправильно помещено.

<select id="queryShopList" resultMap="shopMap">
        SELECT * FROM tb_shop s
      <if test="shopCondition.area != null">
        <where>
                s.area_id = #{shopCondition.area.areaId}
        </where>
     </if>
        ORDER BY priority DESC LIMIT 10, 5;
    </select>
...