for ( Company c : companies ) { em.persist( c ); }
The external iterator usage can be simplified by using internal iterator. Thus, one line is enough.
companies.forEach( em::persist );