あるモデルに@PreRemove
アノテーションをつけたメソッドを用意し、データ削除時に他のモデルのデータを削除するようにしていたところ、削除用のメソッドio.Ebean.Model#deletePermanent
は確実に呼ばれているにもかかわらず、SQLのdelete文が全く発行されていなかった。
結局、@PreRemove
アノテーションをつけたメソッド内で他モデルのデータを削除するのではなく、元のモデルの削除前にコントローラーで削除するようにした。
トランザクションと組み合わせていたからなのか、原因不明の事象でハマった。