Seit JPA 2 gibt es endlich die Moeglichkeit verweiste Objekte einer Collection loeschen zu lassen, so dass keine Hibernate spezifischen Annotationen mehr erforderlich sind.

Hier am Beispiel einer unidirektionalen Assoziation mit JPA 2:

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
private Set<PhoneNumber> resultSet = new ArrayList<PhoneNumber>();

Seit Hibernate 3.5.0-Final wird dies auch unterstützt. Offenbar gibt es da aber noch (irgendwo) einen kleinen Bug. Auch kleine Bugs kann man sehr lange suchen. Wenn man weiß, dass ein Update auf Hibernate 3.5.2 Abhilfe schafft, kann man sich das Suchen auch sparen.
Man muss es eben nur wissen.

Nach so einem Tag hilft nur noch eins:

  1. Spring/JPA/Hibernate: Error while committing the transaction (RollbackException / TransactionSystemException)
  2. Apobank und HBCI4Java: Es tut jetzt!
  3. Java: Sun certified mit T-Shirt
  4. AMD 64 Java 6 crashes – Workaround und Lösungen
  5. Unverhofft kommt oft: 64 bit Java Plugin für Linux ist da!
  6. Netbeans: Maven Source und JavaDoc
  7. Java auf Ubuntu beschleunigen…
  8. Ubuntu/Linux AMD-64: Java Plugin