Cosa dovrei preferire quando aggiorno il database? Quali sono i pro & contro con entrambi i metodi e quando devo usare l'uno o l'altro?Entitymanager.flush() VS EntityManager.getTransaction(). Commit - Cosa dovrei preferire?
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();
}
Nel primo esempio non c'è nessuna transazione, quindi c'è un'eccezione generata a flush(). – DataNucleus
@DataNucleus Penso che in CMT, non dobbiamo avviare/terminare la transazione manualmente. –
sicuro, ma lui è in CMT? nel suo altro esempio inizia il txn, quindi questa è l'unica ipotesi che posso rendere – DataNucleus