我想知道是否有一种方法可以检查 mak:list 的 where 子句中的集合是否为空。
我想避免 mak:list 有问题的集合只是为了 mak:lastCount 它的大小。
我想知道是否有一种方法可以检查 mak:list 的 where 子句中的集合是否为空。
我想避免 mak:list 有问题的集合只是为了 mak:lastCount 它的大小。
是的,因为您可以在 WHERE 条件中使用子查询。
使用来自http://www.makumba.org/page/DataModelHowto的数据定义,即带有一组的 company.Company
suppliers = set company.Company
你可以做类似的事情
<mak:list from="company.Company c" where="(SELECT count(s) FROM c.suppliers s) > 0">
....
</mak:list>
您还可以将其定义为 MDD 中的函数,例如
hasSuppliers() { (SELECT count(s) FROM suppliers s) > 0 }
然后在你的 <mak:list> 中使用它
<mak:list from="general.Company c" WHERE="c.hasSuppliers()">
....
</mak:list>
hasSuppliers() 可以简单地定义为
hasSuppliers(){exists(FROM suppliers s)}