@Override @Transactional public List<AuthorEntity> getBookAuthors(int id) throws NoSuchEntityException { BookEntity book = bookDao.getNotNull(id); List<AuthorEntity> list = Lists.newArrayList(); if (book.getBookToAuthor() != null) { for (BookAuthorEntity b2a : book.getBookToAuthor()) list.add(b2a.getAuthor()); } return list; }
@Override @Transactional public List<KeywordEntity> getBookKeywords(int bookId) throws NoSuchEntityException { BookEntity bookEntity = bookDao.getNotNull(bookId); List<KeywordEntity> res = null; if ((bookEntity != null) && (bookEntity.getBookToKeywords() != null) && (bookEntity.getBookToKeywords().size() > 0)) { res = new ArrayList<KeywordEntity>(); for (BookKeywordEntity key : bookEntity.getBookToKeywords()) res.add(key.getKeyword()); } return res; }
@Override @Transactional(propagation = Propagation.REQUIRED) public Boolean deleteBook( Set<Integer> books_id, Set<Integer> authors_id, Set<Integer> publishers_id) throws NoSuchEntityException, ForbiddenException { List<BookEntity> booksToDelete = Lists.newArrayList(); if (CollectionUtils.isNotEmpty(books_id)) { booksToDelete.addAll(bookDao.get(books_id)); } if (CollectionUtils.isNotEmpty(authors_id)) { booksToDelete.addAll(bookDao.getBooksByAuthor(authors_id)); } if (CollectionUtils.isNotEmpty(publishers_id)) { booksToDelete.addAll(bookDao.getBooksByPublisher(publishers_id)); } if (CollectionUtils.isEmpty(booksToDelete)) { throw new NoSuchEntityException(BookEntity.class.getName()); } return setStatusAndUpdate(booksToDelete, BookStatusesEnum.DELETED); }
@Override @Transactional(propagation = Propagation.REQUIRED) public List<BookEntity> getBooksByIds( Iterable<Integer> ids, int count, BookStatusesEnum statusEnum) throws NotSupportedFieldException, NoSuchEntityException, ForbiddenException { if (ids == null || !ids.iterator().hasNext()) return Lists.newArrayList(); List<Criterion> criterions = Lists.newArrayList(); if (statusEnum != null) { criterions.add(Restrictions.eq("status", statusEnum)); } else { criterions.add(Restrictions.eq("status", BookStatusesEnum.ACTIVE)); } criterions.add(Restrictions.in("id", Lists.newArrayList(ids))); List<BookEntity> res = bookDao.get(0, count, criterions); if (sessionUtils.isUserWithAnotherRole(RolesEnum.admin)) { if (statusEnum != null && !BookStatusesEnum.ACTIVE.equals(statusEnum)) { bookAvailabilityService.areBooksAvailable(res); } } return res; }