Spring-Data JPA: zapisz nowy obiekt odwołując się do istniejącego

Pytanie jest zasadniczo takie samo jak poniżej:

Kaskada JPA utrzymuje się, a odwołania do odłączonych elementów powodują wyjątek PersistentObjectException. Czemu?

Tworzę nową jednostkę, która odwołuje się do istniejącego, odłączonego. Teraz, gdy zapisuję ten obiekt w moim repozytorium danych wiosennych, zgłaszany jest wyjątek:

org.springframework.dao.InvalidDataAccessApiUsageException: detached entity passed to persist

jeśli spojrzymy na metodę save () w kodzie źródłowym JPA danych źródłowych, zobaczymy:

public <S extends T> S save(S entity) {

    if (entityInformation.isNew(entity)) {
        em.persist(entity);
        return entity;
    } else {
        return em.merge(entity);
    }
}

a jeśli spojrzymy na isNew () wAbstractEntityInformation

public boolean isNew(T entity) {

    return getId(entity) == null;
}

Więc w zasadzie jeśli zapisuję () nową jednostkę(id == null), wiosenne dane zawsze będą się powtarzać, a zatem ten scenariusz zawsze zawiedzie.

Wydaje się, że jest to bardzo typowy przypadek użycia podczas dodawania nowych elementów do kolekcji.

Jak mogę rozwiązać ten problem?

EDYTUJ 1:

UWAGA:

Ten problem NIE jest bezpośrednio powiązany zJak zapisać nowy podmiot, który odwołuje się do istniejącego podmiotu w Wiosennym WZP?. Aby rozwinąć załóżmy, że otrzymujesz prośbę o utworzenie nowej jednostki przez http. Następnie wyodrębniasz informacje z żądania i tworzysz swój podmiot oraz istniejący odnośnik. Dlatego zawsze będą odłączone.

questionAnswers(3)

yourAnswerToTheQuestion