hibernate 4.3.0 @OneToMany orphanRemoval= правда оставляет сирот

Я нашел много дискуссий о параметре orphanRemoval=true, по-прежнему оставляя сирот, однако я не могу найти правильный ответ для моей проблемы.

У меня есть класс Connector, который имеет отношение OneToMany к списку класса UniqueProperty

@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true)
@LazyCollection(LazyCollectionOption.FALSE)
private List<UniqueProperty> uniqueProperties;

UniqueProperty имеет это определение:

@Id
@Column(name = "id", length = 200, unique = true, nullable = false)
private String id;
private String name;
private String type;
@Column(unique=true)
private String value;

protected UniqueProperty(){}

Я использую БД PostgreSQL. Когда я создаю новый Connector и добавляю UniqueProperty (name, valueA), он создает одну строку в таблице connector_uniqueproperty и одну строку в таблице uniqueproperty. Когда я создаю новый экземпляр Connector с тем же идентификатором, что и ранее (новый сеанс гибернации), и на этот раз не добавляю уникальное свойство, вызов session.saveOrUpdate (connector) действительно удаляет связанную строку из connector_uniqueproperty, но оставляет соответствующую строку в таблица уникальности (сейчас сирота).

Любые предложения о том, почему это происходит?

0 ответов

Другие вопросы по тегам