entiteiten verwijderen in OneToMany met RequestFactory & JPA

Ik zou graag willen weten wat de juiste manier is om een ​​kind uit een een-op-veel-relatie binnen GWT te verwijderen met behulp van de RequestFactory.

Mijn GWT-applicatie met een entiteit met de naam Product en dat product heeft een een-op-veelrelatie met een expert :

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

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

Ik heb een gebruikersinterface waar u enkele waarden van het Product kunt wijzigen, maar ook een venster waarin experts kunnen worden toegevoegd of verwijderd. Het toevoegen van een expert gaat goed, maar hoe verwijder ik een expert? En welke administratie moet ik doen aan de client- en serverkant?

Ik heb al een geopende productaanvraag gedaan.

3
Het lijkt erop dat deze vraag meer verband houdt met PPV in het algemeen, dus ik heb nog een vraag toegevoegd: stackoverflow.com/questions/7945852
toegevoegd de auteur Roalt, de bron

1 antwoord

Ik heb ook uw PPV-vraag beantwoord.

Gebaseerd op mijn ervaringen uit het verleden, kan het heel lastig zijn om een ​​kind in de bidirectionele ouder-kindrelatie in Hibernate te verwijderen.

Wat ik gewoonlijk doe, is in plaats daarvan gebruik te maken van unidirectionele toewijzing, d.w.z. Product bevat niet de reeks experts. Maar u kunt een getter implementeren om alle experts met behulp van de Hibernate-oproep te krijgen. De voordelen zijn:

  1. eenvoudiger in kaart brengen
  2. eenvoudiger coderen
  3. beheersbaar gedrag

Je kunt altijd terugkomen en caching of enthousiast ophalen in een later stadium implementeren. En meestal zijn het onnodige, voorrijpe optimalisaties.

0
toegevoegd
Ik heb het eindelijk voor elkaar gekregen om alles goed te laten werken, maar zoals je zei, het kan best lastig zijn en het ziet er helder en gemakkelijk uit, maar kan in de praktijk moeilijk zijn. Ik ben er zeker van dat ik voor een volgend project mijn relaties zorgvuldiger zal kiezen omdat de implementatie moeilijker (of beperkter) is dan verwacht.
toegevoegd de auteur Roalt, de bron