Уровни DAO и Service (JPA / Hibernate + Spring) [дубликат]

На этот вопрос уже есть ответ здесь:

Я разрабатываю новое приложение на основе JPA / Hibernate, Spring и Wicket. Однако различие между уровнями DAO и Service для меня не так очевидно. Согласно Википедии, DAO - это

объект, который предоставляет абстрактный интерфейс к некоторому типу базы данных или механизм сохранения, обеспечивающий некоторые конкретные операции без раскрытия подробности о базе данных.

Мне было интересно, может ли DAO содержать методы, которые на самом деле не имеют большого отношения к доступу к данным, но которые намного проще выполнить с помощью запроса? Например, «получить список всех авиакомпаний, которые работают в определенном наборе аэропортов»? Мне кажется, что это скорее метод уровня обслуживания, но я не уверен, что использование JPA EntityManager на уровне обслуживания является примером хорошей практики?

62
задан Sean Patrick Floyd 7 October 2010 в 13:38
поделиться