Как правильно организовать структуру приложения?
Во-первых, зачем использовать в Zend Framework 2 Doctrine ORM 2? Вся идея и фишка самого ZF2 в том, что это чистый PHP. Именно поэтому он лучше всех показывает себя в производительности. Наверное ещё и шаблонизатор какой то используете, например twig...
Во-вторых, если вы и вздумали использовать ORM, тогда используйте framework Symfony 2, там она очень хорошо интегрирована, и предоставляются всевозможные решение той или иной задачи.
В-третьих, насчёт организации, действительно сущность должна хранить защищённые/приватные свойства, и методы доступа к ним. Все операции над получением данных, вы можете поместить в директорию Repository, и поместить методы в класс EntityRepository (вместо Entity вставьте наименование вашей сущности), так это делается в SF2. На самом деле вы вольны в выборе организации, и вы можете делать так, как того пожелаете. Например можете поместить всё это дело либо в Model, или в Service. Разумеется можно просто это дело запихнуть в Controller, но так делать не следует.
Выбор за вами...
самое место методов для работы с БД в модели, тобишь в сущностях или репозиториях