Спасибо большое Raz и SomeOne!
Метод с получением двух query для InventSum и InventSumDelta с последубщими добавлениями в них дополнительных источников данных универсален для всех задач. С последующим суммированием результата через inventSum.addInventSumDelta(inventSumDelta);
Я все понял. Осталось заставить себя в следующий раз применить этот способ, а не считать по-старинке прямыми запросами
Еще один способ - оптимизировать код таким образом, чтобы алгоритму было без разницы, внутри транзакции идет подсчет остатков или за ее пределами, и в этом случае вынести подсчет остатков за пределы транзакции. Это самый оптимальный вариант, но к сожалению не всегда допустимый.
В общем, подсчет остатков - деликатная и объемная тема, достойная диссертации.