Estou procurando ouvir experiências e opiniões sobre a implementação de consultas.
Como é o design da tuas aplicações quando elas requerem um grande número de consultas, com muitos parâmetros opcionais? Usam query builders ou sequências intermináveis de ifs? Um método para tudo, ou uma multidão de métodos para cada consulta? Classes Service, ou usam a mesma classe de domínio/regras pra tudo? E quando juntam dois ou mais tipos de objetos diferentes, vindos de lugares diferentes(tabelas diferentes, ou mesmo outras persistências), pensando na performance da aplicação? Usam Maps/Hashmaps/Dicionarios para trazerem desta forma?
E como segue o design das classes quando elas tem poucas consultas (por enquanto), comparado ao resto do sistema, mesmo esquema?
Gostaria de saber de um método simples e fácil pra implementar isso, já que gerar relatórios, ou mesmo pequenos dados para mostrar em dropdowns, podem ficar bem chatos e trabalhosos de fazer com o tempo, especialmente se adotar um método p/ cada consulta.