У меня есть следующая структура сущности (A, B, C, D - сущности):
A-> one-to-many B,
A-> one-to-many C,
B-> one-to-many D,
C-> one-to-many D.
Я хочу сохранить объект A в спящем режиме, но отправляю его через веб-службу (циклические ссылки исключены). Итак, на сервере я получаю родителей, которые «знают» о детях, а дети не знают о родителях, и мне нужно снова все связать. Проблема в том, что мне нужно сопоставить D с двумя родителями - то, что на клиенте было одним экземпляром D, на сервере стало двумя экземплярами, которые необходимо объединить, и D ранее не сохранялось, поэтому он не содержит уникальный идентификатор это может быть сопоставлено. Я думаю о двух решениях:
1. Call web service twice – in first call persist Ds and then call it to persist A
2. XmlIDRef, and XmlID annotations so I don’t have to merge Ds (jaxb will do the job for me) but in that case client will have to generate unique ids for that fields and I wanted to avoid that.
Как мне это сделать? Я на правильном пути?
Кстати, я использую hibernate, cxf и jaxb.