JPA / Hibernate удаляет «дочерние» объекты

У меня есть два класса сущностейA а такжеB которые существуют в двунаправленном отношении «один ко многим» соответственно.

A.java:

@OneToMany(cascade = CascadeType.ALL, mappedBy = "aId",
           fetch=FetchType.EAGER, orphanRemoval=true)
private Set<B> bCollection = new LinkedHashSet<B>();

B.java

  @JoinColumn(name = "A_ID", referencedColumnName = "ID", nullable=false)
  @ManyToOne(optional = false)   
  private A aId;

В простом консольном приложении я получаюA строка из базы данных и попытаться удалить одну из ее деталейB строки (наугад) ноJPA / Hibernate не только удалить строку - он даже не выдаетУДАЛЯТЬ заявления к базе данных. Единственный способ удалитьB строка путем удаления соответствующей сущности из коллекции (LinkedHashSet) изA.java, Итак, пока у меня есть обходной путь, я хотел бы понять, почему приведенный ниже код дает сбой, и тоже происходит тихо!

public static void main(String[] args) {
    EntityManagerFactory entityManagerFactory =  Persistence.createEntityManagerFactory("testjpa");
    EntityManager em = entityManagerFactory.createEntityManager();
    EntityTransaction entityTransaction = em.getTransaction();
    entityTransaction.begin();
    A a = em.find(A.class, 1);
    B b = getARandomChildOfA(a);
    em.remove(em.merge(b));     // simple em.remove(b) doesn't work either
    entityTransaction.commit();
    em.close();
    entityManagerFactory.close();
}

Ответы на вопрос(1)

Ваш ответ на вопрос