Использование MyBatis с функцией Oracle XMLType "existNode ()" - PullRequest
0 голосов
/ 24 октября 2011

у меня следующая ситуация. это мой MyBATIS SQL заявление:

<select id="select" parameterType="String" resultMap="urlList">
    select 
                x.t002_id
    from
                 t002_metadata x  
    where
        existsNode(x.t002_xml, ?) = 1;
</select>

, поэтому, когда я вызываю метод select из класса-оболочки и устанавливаю строковый параметр с помощью выражения xpath, появляется следующее сообщение об ошибке:

Missing IN or OUT parameter at index:: 1

Разве mybatis не может сделать подготовленное утверждение с помощью метода existNode из oracle ??

спасибо заранее!

1 Ответ

0 голосов
/ 24 октября 2011

Это возможно. Вы не должны кодировать? в ваш MyBatis XML. MyBatis имеет специальный язык для динамического SQL, я предлагаю прочитать Руководство пользователя MyBatis 3 .

Измените свою карту sql,

<select id="select" parameterType="String" resultMap="urlList">
    select 
                x.t002_id
    from
                 t002_metadata x  
    where
        existsNode(x.t002_xml, #{id}) = 1;
</select>

Это может быть не # {id}, это зависит от того, как вы вызываете select из Mybatis. Например, вы можете использовать тег @Param.

...