3

MyBatis のテスト式の AND キーワードは短絡を使用して実装されていますか? たとえば、次のように書いています。

<when test="pagingInstruction != null
            and pagingInstruction.direction.toString() == 'FORWARD'">
...
</when>

第 1 オペランドが false に解決された場合、第 2 オペランドは無視されますか? (MyBatis v3.0.4 を使用しています。)

4

1 に答える 1

6

リファレンス ドキュメントには when 要素のテスト属性が短絡することは記載されていませんが、リファレンス ドキュメントにはwhen要素のテスト属性が短絡した場合にのみ機能する例が含まれています。

例はあなたのものに似ています。ここにあります:

... もの
<when test="author != null and author.name != null">

質問を解決する最も簡単な方法は、単純な単体テストをいくつか作成して、myBatis が "and" をどのように処理するかを判断することです。

pageInstruction.directionまた、 を呼び出す前に が null でないことをテストする必要がある場合もありますpageInstruction.direction.toString()

于 2011-04-18T12:32:05.093 に答える