Я уже обсуждал ситуацию с коллегой, но мы не могли объяснить, почему это работает.
Я получаю список сущностей из БД, не отсоединяя их.
List<Announcement> announcements = new JPAQuery(em).from(QANNOUNCEMENT).where(QANNOUNCEMENT.customer.eq(p.getCustomer()).and((QANNOUNCEMENT.person.eq(p)).or(QANNOUNCEMENT.person.isNull()))).list(QANNOUNCEMENT);
После изменения одного значения я получаю Транзакцию, в которой я выполняю следующую
em.merge(announcement);
em.flush();
В результате сущность обновляется в базе данных без каких-либо проблем.
Как слияние может работать с неотделенной сущностью?