@Override @Transactional(propagation = Propagation.REQUIRED) public List<BookEntity> getBooks(int offset, int limit, BookStatusesEnum status) throws NoSuchEntityException, NotSupportedFieldException, ForbiddenException, AuthRequiredException { bookAvailabilityService.areBooksWithStatusAvailable(status); List<BookEntity> books = bookDao.getBooksWithStatuses(offset, limit, status); if (CollectionUtils.isEmpty(books)) { throw new NoSuchEntityException( BookEntity.class.getName(), String.format("offset %d, limit %d, status %s", offset, limit, status)); } return books; }