Witam
Nie rozumiem troche ponizszego kodu. Metoda merge() przeciez aktualizuje dane z obiektu Entity do bazy natomiast refresh aktualizuje obiekt Entity od bazy.
W ksiazce EJB 3 in action 2007 jest taki przyklad:
public Item updateItem(Item item) {
entityManager.merge(item);
return item;
}
public Item undoItemChanges(Item item) {
entityManager.refresh(entityManager.merge(item));
return item;
}
public void deleteItem(Item item) {
entityManager.remove(entityManager.merge(item));
}
O ile metoda updateItem jest oczywista to juz metoda undoItemChanges jest bledna. Przeciez jak wywolam merge(item) to dane z obiektu item zostana zapisane do bazy, potem jest refresh() czyli praktycznie nie mam co odswiezac bo bede mial to samo :D