Вы очищаете, но не фиксируете - или иным образом завершаете транзакцию / сеанс, который, вероятно, настроен для автоматической фиксации.
Да, после вызова flush()
СУБД теперь знает о ваших данных - но, следуя стандартам ACID, никакие другие сеансы базы данных не увидят эти данные, пока СУБД не получит указание их зафиксировать.
Не зная дополнительных подробностей об архитектуре остальной части вашего приложения и т. Д., Вы, вероятно, хотите сделать что-то вроде:
em.getTransaction().commit();