/ / видалення об'єктів в OneToMany за допомогою RequestFactory та JPA - java, gwt, jpa, requestfactory

вилучення об'єктів у OneToMany з RequestFactory & JPA - java, gwt, jpa, requestfactory

Мені хотілося б дізнатися, що є правильним способом усунути дитину від стосунку «один до багатьох» у 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;
...
}

У мене є інтерфейс користувача, де ви можете змінити деякізначення продукту, але також вікно, де фахівці можуть бути додані або видалені. Додавання експерта йде добре, але як видалити експерта? І що адміністрацію потрібно робити на стороні клієнта та сервера?

У мене вже відкритий запит на продукт.

Відповіді:

0 для відповіді № 1

Я також відповів на ваше питання JPA.

Базуючись на моєму минулому досвіді, видалити дитину у двонаправлені стосунки батько-дитина у сплячому режимі може бути дуже хитро.

Зазвичай я використовую односпрямоване картографування, тобто продукт не має набору експертів. Але ви можете реалізувати геттер, щоб отримати всіх експертів, які використовують дзвінок у сплячому режимі. Перевагами є:

  1. полегшення карти
  2. простіше кодування
  3. керована поведінка

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