3

MyBatis 中测试表达式中的 AND 关键字是否使用短路实现?例如,我写了以下内容:

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

如果第一个操作数解析为 false,是否会忽略第二个操作数?(我使用的是 MyBatis v3.0.4。)

4

1 回答 1

6

尽管参考文档中没有说明when元素的 test 属性短路,但参考文档包含一个示例,该示例仅在when元素的 test 属性短路时才有效。

该示例与您的示例相似;这里是:

... 东西
<when test="author != null and author.name != null">

解决您的问题的最简单方法可能是创建一些简单的单元测试来确定 myBatis 如何处理“和”。

此外,您可能需要pageInstruction.direction在调用pageInstruction.direction.toString().

于 2011-04-18T12:32:05.093 回答