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, Hibernate, Glassfish: Memory Leak beim Redeployment?
  2. Spring/JPA/Hibernate: Error while committing the transaction (RollbackException / TransactionSystemException)
  3. AMD 64 Java 6 crashes – Workaround und Lösungen
  4. Apobank und HBCI4Java: Es tut jetzt!
  5. Eclipse: JSP Syntax Validation Probleme
  6. Maven Properties werden falsch gefiltert?
  7. Java auf Ubuntu beschleunigen…
  8. GWT: Google Web Toolkit wird erwachsen