Java 筛选符合授权条件的记录-规则引擎是正确的解决方案吗?

Java 筛选符合授权条件的记录-规则引擎是正确的解决方案吗?,java,jboss,drools,Java,Jboss,Drools,我有一个付款授权屏幕 将显示事务列表。这是一个过滤列表。 此屏幕中列出的每个交易都需要满足以下条件 A) 满足授权验证矩阵(AVM)条件 B) 。。此时,没有其他条件不起作用 最简单的AVM定义如下 5000以下--批准者角色 5000以上——高级职位 因此,如果loggedIn用户属于approver角色,则应显示低于5000的所有事务 我试图用drools解决这个问题 建议的解决方案。 创建规则“AVMRULE” 每一笔付款都被建模为一个事实 支付有两个有趣的特性 1) 数量 2)

我有一个付款授权屏幕

将显示事务列表。这是一个过滤列表。 此屏幕中列出的每个交易都需要满足以下条件

A) 满足授权验证矩阵(AVM)条件

B) 。。此时,没有其他条件不起作用

最简单的AVM定义如下

  • 5000以下--批准者角色
  • 5000以上——高级职位
因此,如果loggedIn用户属于approver角色,则应显示低于5000的所有事务

我试图用drools解决这个问题

建议的解决方案。

  • 创建规则“AVMRULE”
  • 每一笔付款都被建模为一个事实
支付有两个有趣的特性 1) 数量 2) 易懂的

当payment对象被断言到工作内存中时,“AVMRULE”修改payment.iEligible。用户界面显示或隐藏基于付款的交易。iEligible

问题: 一个系统中的平均支付次数可以达到一百万。 上述解决方案意味着应用程序必须将所有一百万条记录提取到业务层

可以对其进行优化,以获取批量记录和 一旦我们发现前10条记录是可信的,就停止阅读。如果用户希望看到第一页,则可以使用此选项。如果他想看最后一页就不行了。 我不确定在至少20个并发用户的多用户环境中,总体性能是否会提高

问题: 请注意,问题在于显示过滤列表。 还考虑到有更多的条件要处理,AVM比上面定义的要复杂得多。 规则引擎是否适合解决此问题?

这是正确的方法吗?

有人解决过类似的问题吗?


关于如何最大限度地减少从业务层获取的记录数量,是否有任何指导原则?

我找到了这个链接,这个链接很有用,另一个问题有点类似,我找到了这个链接,这个链接很有用,另一个问题有点类似