Entitymanager.flush () VS EntityManager.getTransaction (). Commit - ¿Qué debería preferir?

¿Qué debo preferir al actualizar la base de datos? ¿Cuáles son los pros y los contras de cualquiera de los dos métodos y cuándo debo utilizar uno u otro?

public void disemployEmployee(Integer employeeId, Date endDate) {
    Employee employee = (Employee)em.find("Employee", employeeId);
    employee.getPeriod().setEndDate(endDate);
    em.flush();
}

public void disemployEmployee(Integer employeeId, Date endDate) {
    Employee employee = (Employee)em.find("Employee", employeeId);
    em.getTransaction().begin();
    employee.getPeriod().setEndDate(endDate);
    em.getTransaction().commit();
}

Respuestas a la pregunta(5)

Su respuesta a la pregunta