Кэш L2 должен (по умолчанию, в любой разумной реализации JPA) обновляться при фиксации , а не flush, но это не обязательно в спецификации JPA2, так что вы переходите к особенностям реализации. DataNucleus, конечно, только обновляет его при коммите. Если кэш L2 обновлялся при сбросе, а затем изменения этих объектов откатывались, это приводит к потенциальному считыванию неверных / непостоянных данных. Некоторые могут допустить это как вариант.