I use Spring, Postgres, JPA and MVC pattern. I'm thinking, if you cache a collection of objects 100-200 (7-10 fields), at the repository level and then mess around with it at the service level, perform a filtering search and everything else. Or is it better to go to the database to receive a new bundle of objects, depending on the search parameters, and let it give you what you need?