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, но оставляет соответствующую строку в таблица уникальности (сейчас сирота).
Любые предложения о том, почему это происходит?