Операторы обновления в JPQL используются редко, и их следует использовать для пакетных обновлений, а не просто для обновления одной сущности.Они переводят непосредственно в SQL, и вы не можете обновить пациента и всех связанных с ним лиц, таких как это, в SQL.То же самое касается JPQL.
Чтобы сделать то, что вы хотите сделать, просто извлеките пациента из базы данных и установите новые свойства для загруженного пациента:
Patient p = (Patient) entityManager.find(Patient.class, id);
p.setSurname(updatablePatient.getSurname());
p.setRelatedPersons(updatablePatient.getRelatedPersons());
// ... set other properties
Или, еслиобновляемый пациент - это отдельная копия пациента для обновления, и поэтому он имеет тот же идентификатор,
Patient p = (Patient) entityManager.merge(updatablePatient);
Весь смысл JPA (или хотя бы одного из его пунктов) должен быть в состоянии использовать иизменять граф объектов вместо использования запросов для создания и обновления данных в базе данных.