我是新来的iBatis,我正在努力与元素。使用<isNull> ibatis问题,同时迭代列表
我想迭代一个Book实例列表(例如)作为一个HashMap:MyParameters传入。该列表将被称为listOfBooks。
整体SQL语句的条款,因此看起来就像这样:
<iterate prepend="AND" property="MyParameters.listOfBooks" conjunction="AND" open="(" close=")">
...
</iterate>
我还需要取决于迭代元素中产生不同的SQL是否每个Book实例在“listOfBooks”列表属性为空或者不是。
所以,我需要一个说法是这样的:
<iterate prepend="AND" property="MyParameters.listOfBooks" conjunction="AND" open="(" close=")">
<isNull property="MyParameter.listOfBooks.title">
<!-- SQL clause #1 here -->
</isNull>
<isNotNull property="MyParameter.listOfBooks.title">
<!-- SQL clause #2 here -->
</isNotNull>
当我这样做,我得到一个错误消息,指出没有“可读的”财产在我的书命名为“标题”类。但是,每个Book实例包含一个标题属性,所以我很困惑!我只能说,我已经在试图查明listOfBooks中特定Book实例的标题时使用了语法。 我正在努力寻找实现这一目标的正确方法。如果任何人都可以提出建议,我会很感激。
感谢
感谢您的参考:我一定会检查出来的。我试过括号内的语法,因为我感觉自己的语法是错误的实体。不幸的是,这也没有奏效。底层数据库是Oracle 10g,但我不知道COALESCE功能。我会研究这个;再次感谢 – onoma 2010-04-26 17:44:28