Hibernateにはキャッシュ機能がありload()、get()を行うと自動的にインスタンスがキャッシュされる。
そのため、インスタンスのdelete()後にget()を行うとdelete()したはずのデータがキャッシュから取得されてしまう。
PrimaryKeyからget()してデータの有無を判定するコードでこの問題が判明。
キャッシュを回避するためにget()ではなくcountのHQLで有無を判定するように変更
(インスタンスを取得するわけではないので、これならキャッシュされない!!)。
データの有無をの判定だけなので、これで問題ない