Mule Cache Scope如何使没有DB输出的有效负载的mule缓存无效

时间:2018-01-12 15:29:21

标签: mule

我们想在mule缓存范围内使用数据库查询。

想要在缓存中存储DB查询的输出以保存数据库查询行程。

如果数据库查询没有给出任何输出或有效负载为空,我们不想保存在mule缓存中。

如何使空的有效负载条目的缓存无效?

谢谢。

1 个答案:

答案 0 :(得分:2)

答案是在mule论坛,https://forums.mulesoft.com/questions/84675/mule-cache-scope-how-to-invalidate-mule-cache-for.html

 <ee:cache cachingStrategy-ref="Caching_Strategy" filterExpression="#
   [payload 
      != 'testData']" doc:name="Cache">
         <db:select config-ref="DBConfig" fetchSize="100" 
            doc:name="Database">
             <db:dynamic-query><![CDATA[select * from STUDENT where 
                 student_id = 'TEST']]></db:dynamic-query>
                    </db:select>
                      <choice doc:name="Choice">
                          <when expression="#[message.payload.size() == 0]">
                 <logger message="Payload is empty" level="INFO" 
                   doc:name="Logger"/>
                 <dw:transform-message doc:name="Transform Message">
                     <dw:set-payload><![CDATA[%dw 1.0
                      %output application/json
                        ---
                    payload]]></dw:set-payload>
                 </dw:transform-message>
             </when>
             <otherwise>
                 <object-to-string-transformer doc:name="Object to String"/>
           </otherwise>
       </choice>
       <logger message="After Choice" level="INFO" doc:name="Logger"/>
   </ee:cache>