10.8. 永続オブジェクトの削除

Session.delete() はオブジェクトの状態をデータベースから削除します。しかし、削除したオブジェクトをアプリケーションが保持し続けることも可能です。delete() は永続インスタンスを transient にすると考えるのが一番です。
sess.delete(cat);
外部キー制約に違反するリスクもなく、好きな順番でオブジェクトを削除することができます。ただし、間違った順番でオブジェクトを削除すると、外部キーカラムの NOT NULL 制約に違反する可能性があります。例えば、親オブジェクトを削除したが子オブジェクトを削除し忘れた場合です。