Cayenne Expression.fromString不保持括号顺序

时间:2016-04-13 15:47:27

标签: apache-cayenne

我有一个字符串

((effectiveDate >= "11/01/2015") and (effectiveDate < "04/30/2016")) and (not ((name like "*John*")) and (name like "*Smith*") and (age > "20"))

将其转换为表达式后,它不保持括号顺序

    Expression exp = Expression.fromString(origExpStr);
    System.out.println(exp);

这导致

(effectiveDate >= "11/01/2015") and (effectiveDate < "04/30/2016") and not ((name like "*John*")) and (name like "*Smith*") and (age > "20")

逻辑上它可能意味着相同但我想保持括号顺序以维持正确的分组。

有没有办法在转换为表达式

后保持括号顺序

1 个答案:

答案 0 :(得分:0)

Cayenne Expression.toString()将生成一个最小有效的表达式,该表达式不会改变操作数的顺序。因此,它将导致其自己的括号样式可能与原始括号组匹配,也可能不匹配。正如你所观察到的那样。