Да, имеет смысл иметь отдельные DAO
для большинства объектов.
Часто вы будете работать с обобщенными DAO
s, т.е. у вас есть абстрактный суперкласс.В упрощенном примере это может выглядеть так:
class BaseDAO<T extends Entity>
, которые предоставляют набор полезных методов для поиска, удаления или обновления объектов.При определении подкласса этого BaseDAO для каждой сущности, например,
class EmployeeDAO extends BaseDAO<Employee>
, вы должны убедиться, что все ваши DAO возвращают правильный тип для методов, которые вы * должны реализовать в вашем BaseDAO.,Таким образом, метод findAll()
в вашем EmployeeDAO вернет List<Employee>
.
Кроме того, вы можете реализовать методы для настраиваемых операций для определенных объектов, например, findEmployeesWithSalaryAbove(long)
в соответствующем классе.Вы не хотите, чтобы они загромождали один DAO.