【发布时间】:2017-02-10 15:23:25
【问题描述】:
我有一个 Oracle ADF 实体,其中在数据库中强制执行的行之间存在关系。
我给你一个简化的例子:
假设 MyEntityImpl 的属性是 Customer、Month、Quantity 和 Quantity Rank。假设主键是(客户,月份)。假设“数量排名”的定义是它必须是给定月份内客户数量的密集排名。因此,当月数量最多的客户获得 1,其次是数量最多的客户获得 2,依此类推(假设按客户名称打破关系——没关系)。
此页面的 DML 设置为,当我更新任何行时,给定月份中所有客户的“数量排名”值会立即重新计算并在数据库中更新。
所以,这里的关键问题是:什么是最自然、最简单、最“ADFish”的方法,可以让我的 ADF 页面高效在任何值时重新查询并显示整个月的更新行月份有什么变化?
例如,用户在 2017 年 2 月更新客户 #100,数量为 100。这将导致 2017 年 2 月的部分(甚至全部)其他客户记录获得更新的“数量排名”值.确保我的 ADF 页面刷新那些其他记录以及实际更新的记录的最佳方法是什么?
更新
在实际问题中,“数量排名”的计算非常复杂,需要大量的其他数据库数据,这就是为什么它在数据库中完成的原因。因此,涉及 Groovy 表达式的解决方案可能不会有帮助。我尝试在实体模型中包含此计算所需的数据,以便我可以让 ADF 页面执行计算,但额外的数据明显减慢了页面速度。性能在此页面上非常重要(甚至比平时更重要)。
【问题讨论】:
标签: oracle oracle-adf