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

时间:2018-08-23 14:17:25

标签: java ofbiz moqui

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

是否还有其他方法可以通过实体查找从数据库获取数据(操纵数据,执行某些运行时函数,例如avg(),sum()),例如此类?

1 个答案:

答案 0 :(得分:1)

在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中有许多更复杂的视图实体定义,您可以在代码中使用它们,也可以将其用作示例。这些包括带有子选择,嵌套函数等的更复杂的查询。