Добавление искателей в классы вашего домена кажется более естественным с точки зрения пользователя, но смешивает ваши слои. Grails использует тот же подход, добавляя методы static finder * () save (), ....
Помимо эстетики, она может иметь практические недостатки, если не используется в настройках веб-приложения:
Классы вашего домена теперь привязаны к вашей базе данных. Если вы передаете эти объекты в расширенные клиенты через RMI или HttpInvoker, клиент не может и часто может не использовать методы find *, поскольку на клиенте нет подключения к сеансу / базе данных.
Обычно я предпочитаю разрешать классам доменов ссылаться на интерфейсы уровня обслуживания для предотвращения анемичной модели домена (http://martinfowler.com/bliki/AnemicDomainModel.html).. У этого есть свой собственный набор недостатков, но, по крайней мере, он дает четкую границу. На клиенте конкретная реализация, стоящая за Сервисный интерфейс может затем просто проксировать все вызовы методов на сервере (или просто использовать синамический прокси с пружинным удаленным взаимодействием или чем-то подобным).
Итак, чтобы ответить на ваш вопрос: это может быть заменой, но вы должны знать о возможных негативных последствиях, которые делают ваши доменные классы (т.е. вашу основную бизнес-логику) менее переносимыми между системами.