Spring-Data JPA: сохранить новую сущность, ссылающуюся на существующую
Вопрос в основном такой же, как ниже:
Я создаю новую сущность, которая ссылается на существующую, отдельную. Теперь, когда я сохраняю эту сущность в моем хранилище данных Spring, генерируется исключение:
org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist
если мы посмотрим на метод save () в исходном коде пружинных данных JPA, то увидим:
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}
и если мы посмотрим на isNew () вAbstractEntityInformation
public boolean isNew(T entity) {
return getId(entity) == null;
}
Так что в основном, если я сохраню () новую сущность(id == null)
, весенние данные всегда будут называться постоянными и, следовательно, этот сценарий всегда будет неудачным.
Это кажется очень типичным случаем использования при добавлении новых элементов в коллекции.
Как я могу решить это?
РЕДАКТИРОВАТЬ 1:
НОТА:
Эта проблема НЕ имеет прямого отношения кКак сохранить новую сущность, которая ссылается на существующую сущность в Spring JPA?, Предположим, вы получите запрос на создание новой сущности через http. Затем вы извлекаете информацию из запроса и создаете свою сущность и существующую ссылку. Следовательно они всегда будут отделены.