Я думаю, что проблема в том, что вы делаете некоторые предположения о модели предметной области.
Согласно книге, которую вы упоминаете, Data Mapper действительно требуется только для богатой модели предметной области, и в этом случае лучше всего использовать не объектные компоненты в качестве модели предметной области, а использовать вместо них POJO.
Теперь, если вы пойдете по этому пути, я бы сказал, что классы Data Mapper и Domain Model находятся в одном и том же слое, поверх слоя персистентности (который состоит из DAO и сущностей). В этом случае Data Mapper не работает напрямую с базой данных.
Если, с другой стороны, модель предметной области основана на сущностях, то я бы сказал, что она также является частью персистентного уровня, и Data Mapper также выполняет роль DAO в этом случае, поэтому, опять же, они оба (хотя бы частично) в одном слое.
Какое лучшее решение? В соответствии с книгой, которую я бы сказал, имеет смысл использовать сущности в качестве модели предметной области только в очень простых случаях, отдельно для чего-то сложного (см. Модель предметной области в главе 9 этой книги)