如何在实体查找中使用预定义的 SQL 函数?

How to use predefined SQL functions on entity find?

对于简单的 SQL 查询,我们可以使用所有预定义的 SQL 函数,如 avg()、sum() 等。但是对于 moqui 实体,我们只能从数据库中获取数据。没有预定义函数。

是否有任何其他方法可以实现这种要求,例如使用实体查找从数据库中获取数据(操作数据 - 执行一些 运行-time 函数,如 avg(),sum() )?

在 Moqui 中,函数是通过使用别名元素上的 @function 属性的视图实体定义来使用的。视图实体可能有一个或多个成员实体。这是一个来自 mantle-usl 的带有单个成员实体的示例:

<view-entity entity-name="AssetQuantitySummary" package="mantle.product.asset">
    <member-entity entity-alias="AST" entity-name="mantle.product.asset.Asset"/>
    <alias-all entity-alias="AST"><exclude field="quantityOnHandTotal"/><exclude field="availableToPromiseTotal"/>
        <exclude field="originalQuantity"/></alias-all>
    <alias name="quantityOnHandTotal" entity-alias="AST" function="sum"/>
    <alias name="availableToPromiseTotal" entity-alias="AST" function="sum"/>
    <alias name="originalQuantity" entity-alias="AST" function="sum"/>
</view-entity>

mantle-usl 中有许多更复杂的视图实体定义,您可以在代码中使用它们,或者用作示例。这些包括具有子选择、嵌套函数等的更复杂的查询。