SQLの組み立ては、ActionクラスかServiceクラスか

SimpleWhere等を使用して、SQLを組み立てる場合にActionで組み立てるのがいいかServiceで組み立てるのがいいのか悩んでいる。

Seasar Conference 2008-SAStrutsの開発Tipsでは、Actionクラスでの組み立てができることになっているが、
最新のS2AbstractServiceは、select()メソッドがprotectedになっているのでActionクラスからは見えない。

Seasar2.4.30でpublicからprotectedになったみたい。
AbstractServiceでオーバーライドすれば、publicにもできるけど、開発者によってずれるので辞めたほうが無難か。