Thymeleaf # aggregates.sum с несколькими условиями - PullRequest
0 голосов
/ 16 октября 2019

У меня есть список MyObject, как показано ниже

List<MyObject> myObjList; 

, где MyObject - это класс, определенный ниже

 public class MyObject{

     private String status;
     private double amount;        

    }

Теперь я хочу получить сумму отперечислять только в том случае, если количество не является нулевым, и если код состояния не является XX или YY

Я знаю, что я могу сделать это на Java, но мне нужно сделать это на тимелист, и это то, что я пытался, ноэто не работает

aggregates.sum(myObjList.?[amount!= null && (status!='XX' || status!='YY')].![amount])

Я не получаю никакой ошибки. Я не уверен, что я здесь делаю неправильно.

1 Ответ

1 голос
/ 16 октября 2019

Что не значит работать? Вы получаете неправильный номер? В любом случае, ваше логическое выражение неверно. Выражение гласит (status != 'XX' || status != 'YY'), что будет соответствовать всем записям.

Например, если status = 'XX', то:

('XX' != 'XX' || 'XX' != 'YY') => (false OR true) => true

То же самое происходит для YY:

('YY' != 'XX' || 'YY' != 'YY') => (true OR false) => true

Кроме этого, мне кажется, все работает. Исправленное выражение (паренсы за статус не нужны, если вы не думаете, что они читаются лучше):

${#aggregates.sum(myObjList.?[amount != null && (status != 'XX' && status!='YY')].![amount])}
...