REST URI данных Spring против идентификатора объекта

Spring Data REST (и Spring HATEOAS в частности) отделяет RESTful ID (а именно, URI) от идентификаторов сущностей, и I 'Я не могу связать их обратно при сохранении новых объектов. Смотрите интересную дискуссию вокруг этого разделения вhttps://github.com/SpringSource/spring-data-rest/issues/13.

Предположим, что клиентское приложение хочет создать новыйTicket ресурс со связаннымTicketCategory ресурс. Я хочу опубликоватьTicket по отношению к удаленной конечной точке REST Spring Data.Ticket Безразлично»еще не имеют удостоверения личности, так какс новым.TicketCategory имеет идентификатор, но на клиенте этоURI согласно приведенному выше обсуждению. Поэтому, когда я сохраняюTicketSpring Data REST передаетTicket в Spring Data JPA, который неэто нравится: Spring Data JPA считает, что -TicketCategoryне имеющий идентификатора сущностипереходный процесс:

org.hibernate.TransientPropertyValueException:
    Not-null property references a transient value -
    transient instance must be saved before current operation:
    com.springinpractice.ch13.helpdesk.model.Ticket.category ->
    com.springinpractice.ch13.helpdesk.model.TicketCategory

ОБНОВИТЬ: Документация на

https://github.com/SpringSource/spring-data-rest/wiki/JPA-Repository-REST-Exporter

имеет раздел под названием "Обновление отношений " это описывает схему, использующую HTTP POST для установления отношений между сущностями. Я нене знаю, если этоЭто единственный доступный в настоящее время подход, но, по-видимому, этот подход потребует оставить нулевую ассоциацию на начальном посте, а затем обновить ее последующим постом. В вышеприведенном случае это было бы нежелательно, поскольку поле категории обязательно (@NotNull) для билетов.

Ответы на вопрос(2)

Ваш ответ на вопрос