jeśli wywołamy EntityTransaction.commit(), czy to automatycznie wywoła EntityManager.flush()?
Tak
jaka jest różnica?
W flush() zmiany w danych sąodwzorowywane w bazie danych po napotkaniu flusha, ale nadal jest w transaction.flush() MUSI być ujęty w kontekście transakcji i nie musisz tego robićwprost jeśli nie jest to konieczne (w rzadkich przypadkach ), kiedy EntityTransaction.commit() robi to za Ciebie.
Źródło