MyBatis 中测试表达式中的 AND 关键字是否使用短路实现?例如,我写了以下内容:
<when test="pagingInstruction != null
and pagingInstruction.direction.toString() == 'FORWARD'">
...
</when>
如果第一个操作数解析为 false,是否会忽略第二个操作数?(我使用的是 MyBatis v3.0.4。)
尽管参考文档中没有说明when元素的 test 属性短路,但参考文档包含一个示例,该示例仅在when元素的 test 属性短路时才有效。
该示例与您的示例相似;这里是:
... 东西 <when test="author != null and author.name != null">
解决您的问题的最简单方法可能是创建一些简单的单元测试来确定 myBatis 如何处理“和”。
此外,您可能需要pageInstruction.direction
在调用pageInstruction.direction.toString()
.