удаление объектов в OneToMany с помощью RequestFactory и JPA - PullRequest
3 голосов
/ 28 октября 2011

Я хотел бы знать, как правильно удалить ребенка из отношения «один ко многим» в GWT, используя RequestFactory.

Мое приложение GWT с сущностью с именем Продукт , и этот продукт имеет отношение один-ко-многим к Эксперт :

@Entity
public class Product {
    ... 
    OneToMany(mappedBy="product", orphanRemoval=true,
              cascade={CascadeType.DETACH,CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},fetch=FetchType.EAGER)
    Set<Expert> experts = new HashSet<Expert>();
    ...
}

@Entity(name = "EXPERT")
public class Expert {
    ...
    @ManyToOne(optional=false)
    Product product;
    ...
}

У меня есть пользовательский интерфейс, в котором вы можете изменить некоторые значения Product, а также окно, в котором можно добавлять или удалять экспертов. Добавление эксперта проходит хорошо, но как мне удалить эксперта? И какое администрирование я должен делать на стороне клиента и сервера?

У меня уже открыт запрос продукта.

1 Ответ

0 голосов
/ 05 декабря 2011

Я также ответил на ваш вопрос JPA.

Исходя из моего прошлого опыта, удаление ребенка в двунаправленных отношениях родитель-ребенок в Hibernate может быть очень сложным.

Обычно я использую однонаправленное сопоставление, т. Е. Продукт не является экспертом.Но вы можете реализовать метод получения, чтобы все эксперты использовали вызов Hibernate.Преимущества:

  1. более простое отображение
  2. более простое кодирование
  3. управляемый behviour

Вы всегда можете вернуться и реализовать кэширование или выполнитьполучение на более поздней стадии.И большую часть времени они являются ненужной предзрелой оптимизацией.

...