Я разрабатываю новое приложение на основе JPA/Hibernate, Spring и Wicket. Различие между уровнями DAO и Service не так ясно для меня. Согласно Википедии, DAO
объект, который предоставляет абстрактный интерфейс к некоторому типу базы данных или механизм сохранения, обеспечивающий некоторые конкретные операции без разоблачения сведения о базе данных.
Мне было интересно, может ли DAO содержать методы, которые действительно не имеют особого отношения к доступу к данным, но проще ли выполнить запрос? Например, "получите список всех авиакомпаний, которые работают в определенном наборе аэропортов"? Мне кажется, что это скорее метод уровня сервиса, но я не уверен, что использование JPA EntityManager на уровне сервиса является примером хорошей практики?