Как избежать раздутого DAO методами поиска информации?
Здравствуйте. Читал много информации, но так и не понял, как поступают на практике.
У меня есть DAO, например для поиска статей. Соответственно, сразу возникают методы FindById, FindByDate, FindByDateInterval и так далее.
Хочется иметь один метод Find, куда волшебных образом вставляются условия и получается выборка. В моем проекте могут быть и mysql и xml базы данных. Так что хотелось бы абстрагированного от хранилища решения, т.к. DAO для этого и используется.
Это совершенно не решение. Если у меня в таблице 12 столбцов - это что я должен 12 методов с разными сигнатурами? А если некоторые мне нужны в диапазоне или более сложные выборки? Да и DAO класс тогда будет раздутым еще больше.
Передавать в find объект фильтра с полями id, date и т.д., в некоторых из которых будет значение для фильтрации, остальные - null.
Можно попробовать передавать не объект фильтра, а непосредственно частично заполненный шаблон объекта, который мы ищем. Но тогда нельзя будет указывать интервалы или множества значений.