2012-02-05 7 views

Odpowiedz

13

Tak, obiekty zwrócone z .getResultList() są zarządzane.

Po wprowadzeniu zmian w zarządzanych obiektach nie trzeba się przejmować łączeniem, ponieważ te zmiany zostaną automatycznie pobrane przez EntityManager.

zarządzanych obiektów zostanie odłączona EntityManager, który jest używany do załadowania tego obiektu jest close(), clear() lub detach(). Obiekty wolnostojące nie są już modyfikowane i powinieneś scalić, aby pozwolić EntityManager odebrać zmiany.

+0

Dziękuję bardzo. Myślałem, że będą przywiązani, ale wydawało się, że zostali oderwani. Okazuje się, że mylnie utworzyłem drugi EntityManager, więc wydawało się, że zostali oderwani. –

+0

Czy musisz .commit() zmiany lub jest to również automatyczne? – user2130951

+0

Uważam, że jest automatyczne, ale nie powinno to zaszkodzić. –

2

Z mojego doświadczenia wynika, że ​​wartości zwracane getResultList() są dołączone. Oznacza to, że nie musisz ich ręcznie utrwalać, jeśli dokonasz w nich modyfikacji w ramach tej samej transakcji.

2

Będą zarządzane, jeśli jesteś w trakcie transakcji, ale jeśli nie jesteś (np. Jeśli zanotowałeś swoją operację za pomocą TransactionAttributeType.NOT_SUPPORTED lub TransactionAttributeType.NEVER) Twoje jednostki nie będą zarządzane.

Powiązane problemy