@Query("delete from SomeTable t where t.id = ?1") 쿼리로는 삭제가 잘 되는데 CrudRepository, JpaRepository 메서드로는 삭제가 되지 않는 경우가 있다. 이런 경우, 삭제는 제대로 되지 않으면서 PreRemove 콜백은 잘 불린다. 원인은 간단하다. 양방향 관계 중 한곳에서만 삭제를 했기 때문이다. 해결 방법은 엔티티 삭제 시 매핑되어있는 부모 엔티티에서도 함께 삭제해주면 된다. https://stackoverflow.com/questions/22688402/delete-not-working-with-jparepository/37030089