Removendo filho da coleção usando JPA

Estou usando o JPA sobre o Hibernate no meu aplicativo da web. Aqui estão duas entidades (somente getters são mostrados):

class Child {
  private Parent parent;

  @ManyToOne(optional=false)
  @JoinColumn(name="parent_id", referencedColumnName="parent_id", nullable=false, updatable=false)
  public Parent getParent() {
    return parent;
  }
}

class Parent {
  private Collection<Child> children;

  @OneToMany(fetch=FetchType.EAGER, mappedBy="parent", cascade={CascadeType.ALL})
  public Collection<Child> getChildren() {
    return children;
  }
}

Como você vêParent eChild relacionam-se como "um para muitos".

Agora eu preciso carregar umParent Por exemplo, remova alguns ou todos os filhos e salve as alterações. Abaixo está um código que não funciona para mim:

Parent p = entityManager.find(Parent.class, 12345L); // load entity
p.getChildren().clear(); // remove all children
entityManager.merge(p); // try to save

Entidades filhas não são removidas no exemplo acima. Agora eu tenho que ligar manualmenteentityManager.remove() para cada criança.

Existe alguma maneira mais fácil de gerenciar a coleta de filhos?

Observe que eu não quero usar a funcionalidade específica do Hibernate, apenas JPA puro.

questionAnswers(1)

yourAnswerToTheQuestion