2011-10-24 11 views
0

次のような状況があります。私はラッパークラスから選択メソッドを呼び出して、XPath式で文字列パラメータを設定していたときに、次のエラーメッセージが現れますので、Oracle XMLType関数でMyBatisを使用する "existsNode()"

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

Missing IN or OUT parameter at index:: 1 
は、これが私のMyBatisのSQL文であります

mybatisがoracleのexistNodeメソッドを使用して準備文を作成することはできませんか?

ありがとうございます!

答えて

0

可能です。あなたは? MyBatis xmlに追加します。 MyBatisには動的SQL用の特別な言語がありますが、MyBatis 3 User Guideを読むことをお勧めします。

あなたの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}ではないかもしれません、それはあなたがMyBatisの中から選択呼び出す方法によって異なります。たとえば、@ Paramタグを使用しているとします。

関連する問題