我有一个字符串
((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")
逻辑上它可能意味着相同但我想保持括号顺序以维持正确的分组。
有没有办法在转换为表达式
后保持括号顺序答案 0 :(得分:0)
Cayenne Expression.toString()将生成一个最小有效的表达式,该表达式不会改变操作数的顺序。因此,它将导致其自己的括号样式可能与原始括号组匹配,也可能不匹配。正如你所观察到的那样。