Пример #1
0
  @Override
  public void deleteMovie(String path) {
    List<MovieFileImpl> movieFiles;
    // No file extension, should be a directory
    if (StringUtils.isEmpty(FilenameUtils.getExtension(path))) {
      if (!path.endsWith(SystemUtils.FILE_SEPARATOR)) {
        path = path + SystemUtils.FILE_SEPARATOR;
      }
      path = FilenameUtils.separatorsToUnix(path);
      movieFiles =
          this.entityManager
              .createQuery(
                  "SELECT m FROM MOVIE_FILE m WHERE m.filePath LIKE ?1", MovieFileImpl.class)
              .setParameter(1, path + "%")
              .getResultList();
    }
    // Path is file
    else {
      path = FilenameUtils.separatorsToUnix(path);
      movieFiles =
          this.entityManager
              .createQuery(
                  "SELECT m FROM MOVIE_FILE m WHERE m.absolutePath = ?1", MovieFileImpl.class)
              .setParameter(1, path)
              .getResultList();
    }

    // Delete old movies
    if (movieFiles != null && !movieFiles.isEmpty()) {
      for (MovieFile movieFile : movieFiles) {
        Movie movie = movieFile.getMovie();
        if (movie != null && movie.getFilesCount() == 1) {
          this.entityManager.remove(movie);
        } else {
          this.entityManager.remove(movieFile);
        }
      }
    }
  }