私が携わるプロジェクトでは、 極力SQLでビジネスロジックを書くことを回避してもらってます。 理由は、SQLでロジック書かれると、 JavaとSQLでロジックが分散してしまうからです*1。 SQLだろうが、Javaだろうが、 訳のわからないロジックを書けてしまう事は事実です。 システムの目的はぶっちゃけると、 永続化してデータを貯め、それを参照させること。 システムは生き物です。今のロジックでは問題ないかもしれませんが、 遠くない未来では仕様を満たさなくなるかもしれません。 仕様が変更されると、今まで正しかった振る舞いも 正しくないことになります。 システムとして存在し続ける為に、 正しい振る舞いになるようにロジックを変更する必要があるのですが、 テスト、もしくは動作確認をする際、SQLでビジネスロジックが記述されていると 事前データの準備が必要になってきます。 テスティングフレームワーク