Объект не найден в БД, но присутствует в постоянном контексте - PullRequest
0 голосов
/ 21 июня 2019

Я создаю подписку на ресурс, используя транзакцию 1, перед тем как эта транзакция 1 возвращается, она добавляет запрос, ответ и jpa-запрос, извлеченный только что созданным ресурсом подписки, в очередь, которая обрабатывается потоками службы исполнителя.

Этот executorService запускает отдельную транзакцию 2, которая использует jpa-запрос для чтения определенного атрибута ресурса подписки, но получает нулевое значение, но предыдущая транзакция 1 нашла его (может быть, он сам его создал).Транзакции 2 нужно прочитать текущее значение, но не найти его.

Я использую Ecliplink 2.6, JDK 1.8 и Wildfly 10.Final.

Я изучил, сохранила ли eclipselink его в БД или сохранила в файле persistenceContext coz, транзакция все еще не завершена и новая транзакция пытается ее прочитать.

1 Ответ

1 голос
/ 21 июня 2019

Это нормальное поведение транзакции.

Пока T1 не зафиксирован, T2 не может видеть данные из T1.

...