Transakcja

Odpowiedz Nowy wątek
2017-03-20 13:54
0

Witam czy jest możliwe takie działanie: Metoda load w jednej transakcji oraz metoda save w drugiej, oraz takie złożenie jak poniżej.
Czy entityManager może działać między transakcjami? np żeby zadziałała metoda em.contains(entity)

    @PersistenceContext
    private EntityManager em;
    @Transactional
    public T load(PK id) {

        return em.find(type, id);
    }
    @Transactional
    public void save(T entity) {

        em.persist(entity);
    }
    Orders order = orderRepository.load(1L);
    order.setName("name");
    orderRepository.save(order);

Dostaję tutaj wyjątek:
PersistentObjectException: detached entity passed to persist

edytowany 1x, ostatnio: borpaw, 2017-03-20 13:55

Pozostało 580 znaków

2017-03-20 22:41
0

Szczerze powiedziawszy to nie rozumiem jak Ci może to w ogóle działać w przypadku pierwszym - powinieneś mieć "EntityExistsException" (albo czegoś nie widzę).


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.

Pozostało 580 znaków

2017-03-20 22:41
0

Wraz z zakończeniem transakcji EM jest niszczony. Jedyny wyjątek – rozszerzony persistance context.


Jeżeli szukasz pracy jako programista Java, .NET, C++ to napisz na priv.

http://koziolekweb.pl - przemyślenia o życiu i śmierci i różnościach...
https://github.com/Koziolek/koziolekweb - kod z bloga
Klingon multitasking systems do not support "time-sharing". When a Klingon program wants to run, it challenges the scheduler in hand-to-hand combat and owns the machine.

Pozostało 580 znaków

2017-03-20 22:52
0

No właśnie jak to wyjaśnić dlaczego to działa, musi być jakaś różnica pomiędzy @Transactional a drugim rozwiązaniem. Ale zapewniam, że to działa.

Pozostało 580 znaków

2017-03-20 23:04
0

Może masz jakąś skopaną implementację JPA ? (nie powinno działać -> wyrzuć :-) )


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.
edytowany 1x, ostatnio: jarekr000000, 2017-03-20 23:04

Pozostało 580 znaków

2017-03-20 23:19
0

można tu jakoś przesłać źródła czy trzeba wszystko wklejać?

Pozostało 580 znaków

2017-03-20 23:19
0

Najlepiej wstaw źródła na jakiegoś Githuba - wtedy łatwo będzie ogarnąć.


Bardzo lubie Singletony, dlatego robię po kilka instancji każdego.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0