Minimize code duplication in DAOs
With some of the work on the repair api, a more general structure for querying DB objects has been made in the `SearchService`. This allows us to pass QueryDSL search criteria and compose the queries for us. In addition, we can use this time to see if anything can be migrated to the `BooleanBuilder` class which is provided by QueryDSL and used for building up predicate expressions.
issue