Drools 7.54+版本Maven升级后Float字段规则匹配异常问询
Drools版本升级(7.54.* → 7.74)遇到的字段解析与逻辑运算符异常问题
核心问题描述
- 当Float类型字段名称包含数字(如
float123、fl123oat),且与字段名中包含的相同数字进行比较时,Drools会错误地将字段名改写为类似float123.0的形式,触发未知字段错误,所有比较运算符均失效。 - 调试日志示例:
ERROR ******.KieProject - unable to build kieBaseModel:defaultKieBase Unable to resolve method using strict-mode:java.lang.Float.0()] Near :{..float123.0 >123.0...}
临时方案的异常表现
将比较值改为小数形式(如float123 > 123.0)可规避字段解析错误,但存在逻辑运算符行为不一致问题:
- 使用OR(
||)组合多条件时,即使存在错误条件,规则仍会通过; - 使用AND(
&&)组合多条件时,验证行为正常(错误条件会导致规则验证失败)。
求助需求
- 是否可通过Java代码移除该字段解析限制?或是否有修复该问题的Drools高版本?
- 针对OR运算符与单条件、AND运算符行为不一致的问题,求原因分析、解决方案或修复方式?
内容的提问来源于stack exchange,提问作者Mani kumar
相关产品推荐
相关产品推荐

