class RepositoryTodoSearchService implements TodoSearchService {

    @Transactional(readOnly = true)
    @Override
    public Page<TodoDTO> findBySearchTerm(String searchTerm, Pageable pageable) {
        LOGGER.info("Finding {} todo entries for page {} by using search term: {}",
                pageable.getPageSize(),
                pageable.getPageNumber(),
                searchTerm
        );

        Page<Todo> searchResults = repository.findBySearchTerm(searchTerm, pageable);
        LOGGER.info("Found {} todo entries for page: {}",
                searchResults.getNumberOfElements(),
                searchResults.getNumber()
        );

        List<TodoDTO> dtos = transformer.convertList(searchResults.getContent(), TodoDTO.class);

        return new PageImpl<>(dtos,
                new PageRequest(searchResults.getNumber(), searchResults.getSize(), searchResults.getSort()),
                searchResults.getTotalElements()
        );
    }

    @Autowired public  RepositoryTodoSearchService(TodoRepository repository, JTransfo transformer);

}