2012-05-04 21 views
3

動的クエリでエラーが発生しました。プロパティFirstNameがnullでないibatisの動的クエリエラー

<dynamic> 
    select * from Tbl_Member 
    WHERE 

    <isNotNull property="FirstName"> 
     FIRST_NAME = #lastName# 
    </isNotNull> 

    <isNotNull prepend="and" property="lastName"> 
     LAST_NAME = #lastName# 
    </isNotNull> 

    <isNotNull prepend="and" property=""> 

    </isNotNull> 

    . 
    . 
    . 
    . 

</dynamic> 

場合は、クエリが動作します。これは私が持っているクエリです。しかし、プロパティがnullで残りのプロパティがLastNameでない場合、SQLエラーが発生します。

ため、この状態では、SQL文は以下のようになる:

select * from Tbl_Member WHERE AND LAST_NAME = ? ... 

最初のプロパティがNull

PSになった場合にどのように私は最初、先頭に付加ANDを削除することができます

私も試してみましたremoveFirstPrepend="true"

<isNotNull prepend="and" property="lastName" removeFirstPrepend="true"> 
    LAST_NAME = #lastName# 
</isNotNull> 

しかし残念ながら、それはどちらも動作しません。

答えて

3

<dynamic prepend="WHERE"> 

select * from Tbl_Member 
<dynamic prepend="WHERE"> 

<isNotNull prepend="and" property="FirstName"> 
    FIRST_NAME = #lastName# 
</isNotNull> 

<isNotNull prepend="and" property="lastName"> 
    LAST_NAME = #lastName# 
</isNotNull> 

<isNotNull prepend="and" property=""> 

</isNotNull> 

. 
. 
. 
. 

</dynamic> 

http://ibatis.apache.org/docs/dotnet/datamapper/ch03s09.html

+0

であなたの答えに感謝をしてみてください。それは仕事です:) – AKZap