之前這個動態sql一直沒有效果,
<statement id="searchBookByName" parameterClass="book" resultClass="book">
SELECT * FROM book
<dynamic prepend="where">
<isNotNull>
name like #name#
</isNotNull>
</dynamic>
</statement>
測試時我把book的name設為null,用p6spy查看輸出的sql為:
SELECT * FROM book where name like ''
后來在官方文檔上看到“property - 被比較的屬性(必選)”,于是改成
<statement id="searchBookByName" parameterClass="book" resultClass="book">
SELECT * FROM book
<dynamic prepend="where">
<isNotNull propety="name">
name like #name#
</isNotNull>
</dynamic>
</statement>
果然正常了。
ps:如果在dtd中有這個檢查或者ibatis解析這樣的xml會報錯,我就不用疑惑兩天了。
特此為記!