Удаление отношения «многие к одному» в JPA с помощью merge () - PullRequest
1 голос
/ 24 февраля 2012

У меня есть приведенное ниже однонаправленное отображение «Много к одному»

@Entity
public class Item implements Serializable {
    private Integer id;
    private Double amount;
        private Country origin;

    @ManyToOne(optional=true)
    @JoinColumn
    public Country getOrigin() {
        return this.origin;
    }
}

@Entity
public class Country implements Serializable{

    private String code;
    private String desc;
}

Допустим, отношение является необязательным, поэтому я пытаюсь удалить отношение, обновив его до нуля, используя код ниже

Country country = null;
//item is detached
item.setOrigin(country);
em.merge(item);

Но в результате получается, что отношения не удаляются.Однако этот код работает нормально, если country не равен NULL и система может обновить отношения в БД.Он просто игнорирует поле, если оно пустое.Может кто-нибудь указать, какие настройки можно изменить, чтобы достичь желаемого результата?

PS Напоминаем, что я не хочу удалять сущность Country, а просто удалите связь между ними.

1 Ответ

0 голосов
/ 28 февраля 2012

Спасибо всем, что это ошибочный вопрос. Это на самом деле работает.

Есть какая-то проблема на стороне клиента, которая отправляет неверные данные.

...