По някаква причина мислех, че неявната транзакция, към която се присъединява entityManager, е нова транзакция. Но Хибернация на документи състояние:"Когато създадете мениджър на обект в транзакция, мениджърът на обект автоматично се присъединява към текущата транзакция."
Така че очевидно има друга транзакция, която вече се изпълнява (не е изненадващо) и резултатите от извличането ми се променят в зависимост от това, което вече е прочело (тъй като базата данни работи в режим ПОВТОРЯЩО-ЧЕТЕНЕ.)
В краткосрочен план ще прегледам кода си, за да изрично започвам () транзакции, където и да липсва. В дългосрочен план ще разгледам Spring Transactions, за да видя как да управлявам транзакциите по по-сигурен начин (както беше предложено в коментарите.)