List of usage examples for org.hibernate.type StringType INSTANCE
StringType INSTANCE
To view the source code for org.hibernate.type StringType INSTANCE.
Click Source Link
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
/** * Get a list of the awards for a given video ID * * @param type/* ww w. ja va2 s . c om*/ * @param id * @return */ private List<ApiAwardDTO> getAwardsForId(MetaDataType type, Long id) { SqlScalars sqlScalars = new SqlScalars(); sqlScalars .addToSql("SELECT DISTINCT a.event, a.category, a.sourcedb as source, c.year, c.won, c.nominated "); if (type == MetaDataType.SERIES) { sqlScalars.addToSql("FROM series_awards c "); sqlScalars.addToSql("JOIN award a ON c.award_id=a.id "); sqlScalars.addToSql("WHERE c.series_id=:id "); } else if (type == MetaDataType.SEASON) { sqlScalars.addToSql("FROM series_awards c "); sqlScalars.addToSql("JOIN season sea ON c.series_id=sea.series_id "); sqlScalars.addToSql("JOIN award a ON c.award_id=a.id "); sqlScalars.addToSql("WHERE sea.id=:id "); } else { // defaults to movie sqlScalars.addToSql("FROM videodata_awards c "); sqlScalars.addToSql("JOIN award a ON c.award_id=a.id "); sqlScalars.addToSql("WHERE c.videodata_id=:id "); } sqlScalars.addToSql("ORDER BY year, event"); sqlScalars.addScalar("event", StringType.INSTANCE); sqlScalars.addScalar("category", StringType.INSTANCE); sqlScalars.addScalar("source", StringType.INSTANCE); sqlScalars.addScalar("year", IntegerType.INSTANCE); sqlScalars.addScalar("won", BooleanType.INSTANCE); sqlScalars.addScalar("nominated", BooleanType.INSTANCE); sqlScalars.addParameter(ID, id); return executeQueryWithTransform(ApiAwardDTO.class, sqlScalars, null); }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
/** * Get a list of the ratings for a given video ID * * @param type/*w w w .j a va2 s . c om*/ * @param id * @return */ private List<ApiRatingDTO> getRatingsForId(MetaDataType type, Long id) { SqlScalars sqlScalars = new SqlScalars(); sqlScalars.addToSql("SELECT r1.rating, r1.sourcedb AS source, 2 AS sorting "); if (type == MetaDataType.SERIES) { sqlScalars.addToSql("FROM series_ratings r1 "); sqlScalars.addToSql("WHERE r1.series_id=:id "); } else if (type == MetaDataType.SEASON) { sqlScalars.addToSql("FROM series_ratings r1, season sea "); sqlScalars.addToSql("WHERE sea.id=:id "); sqlScalars.addToSql("AND sea.series_id=r1.series_id "); } else { // defaults to movie sqlScalars.addToSql("FROM videodata_ratings r1 "); sqlScalars.addToSql("WHERE r1.videodata_id=:id "); } sqlScalars.addToSql("UNION "); // combined rating sqlScalars.addToSql("SELECT round(grouped.average) AS rating, 'combined' AS source, 1 AS sorting FROM "); sqlScalars.addToSql("(SELECT avg(r2.rating) as average "); if (type == MetaDataType.SERIES) { sqlScalars.addToSql("FROM series_ratings r2 "); sqlScalars.addToSql("WHERE r2.series_id=:id "); } else if (type == MetaDataType.SEASON) { sqlScalars.addToSql("FROM series_ratings r2, season sea "); sqlScalars.addToSql("WHERE sea.id=:id "); sqlScalars.addToSql("AND sea.series_id=r2.series_id "); } else { // defaults to movie sqlScalars.addToSql("FROM videodata_ratings r2 "); sqlScalars.addToSql("WHERE r2.videodata_id=:id "); } sqlScalars.addToSql(") AS grouped "); sqlScalars.addToSql("WHERE grouped.average is not null "); sqlScalars.addToSql("ORDER BY sorting, source "); sqlScalars.addScalar("source", StringType.INSTANCE); sqlScalars.addScalar("rating", IntegerType.INSTANCE); sqlScalars.addParameter(ID, id); return executeQueryWithTransform(ApiRatingDTO.class, sqlScalars, null); }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
/** * Get a list of the cast for a given video ID * * @param type//w w w.jav a 2 s.co m * @param id * @return */ private List<ApiPersonDTO> getCastForId(MetaDataType type, Long id, List<DataItem> dataItems, Set<String> jobs) { SqlScalars sqlScalars = new SqlScalars(); sqlScalars.addToSql("SELECT DISTINCT p.id,"); if (dataItems.contains(DataItem.BIOGRAPHY)) { sqlScalars.addToSql("p.biography,"); sqlScalars.addScalar("biography", StringType.INSTANCE); } sqlScalars.addToSql("p.name,"); sqlScalars.addToSql("p.first_name AS firstName,"); sqlScalars.addToSql("p.last_name AS lastName,"); sqlScalars.addToSql("p.birth_day AS birthDay,"); sqlScalars.addToSql("p.birth_place AS birthPlace,"); sqlScalars.addToSql("p.birth_name AS birthName,"); sqlScalars.addToSql("p.death_day AS deathDay,"); sqlScalars.addToSql("p.death_place AS deathPlace,"); sqlScalars.addToSql("c.role as role,"); sqlScalars.addToSql("c.job as jobTypeAsString "); sqlScalars.addToSql("FROM person p "); if (type == MetaDataType.SERIES) { sqlScalars.addToSql("JOIN cast_crew c ON p.id=c.person_id "); sqlScalars.addToSql("JOIN season sea ON sea.series_id=:id "); sqlScalars.addToSql("JOIN videodata vd ON vd.id=c.videodata_id and vd.season_id=sea.id "); } else if (type == MetaDataType.SEASON) { sqlScalars.addToSql("JOIN cast_crew c ON p.id=c.person_id "); sqlScalars.addToSql("JOIN videodata vd ON vd.id=c.videodata_id and vd.season_id=:id "); } else { // defaults to movie/episode sqlScalars.addToSql("JOIN cast_crew c ON p.id=c.person_id and c.videodata_id=:id "); } if (jobs != null) { sqlScalars.addToSql("WHERE c.job in (:jobs) "); sqlScalars.addParameter("jobs", jobs); } sqlScalars.addToSql("ORDER BY c.ordering"); sqlScalars.addScalar(ID, LongType.INSTANCE); sqlScalars.addScalar("name", StringType.INSTANCE); sqlScalars.addScalar("firstName", StringType.INSTANCE); sqlScalars.addScalar("lastName", StringType.INSTANCE); sqlScalars.addScalar("birthDay", DateType.INSTANCE); sqlScalars.addScalar("birthPlace", StringType.INSTANCE); sqlScalars.addScalar("birthName", StringType.INSTANCE); sqlScalars.addScalar("deathDay", DateType.INSTANCE); sqlScalars.addScalar("deathPlace", StringType.INSTANCE); sqlScalars.addScalar("role", StringType.INSTANCE); sqlScalars.addScalar("jobTypeAsString", StringType.INSTANCE); sqlScalars.addParameter(ID, id); return executeQueryWithTransform(ApiPersonDTO.class, sqlScalars, null); }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
/** * Get a select list of artwork available for a video ID * * @param type/*from w w w . j a va2 s . co m*/ * @param id * @param artworkRequired * @return */ public Map<Long, List<ApiArtworkDTO>> getArtworkForId(MetaDataType type, Object id, Set<String> artworkRequired) { LOG.trace("Artwork required for {} ID {} is {}", type, id, artworkRequired); StringBuilder sbSQL = new StringBuilder(); sbSQL.append("SELECT '").append(type.toString()).append("' AS sourceString,"); sbSQL.append(" v.id AS sourceId, a.id AS artworkId, al.id AS locatedId, ag.id AS generatedId,"); sbSQL.append( " a.artwork_type AS artworkTypeString, ag.cache_dir AS cacheDir, ag.cache_filename AS cacheFilename "); if (type == MetaDataType.MOVIE) { sbSQL.append("FROM videodata v "); } else if (type == MetaDataType.SERIES) { sbSQL.append("FROM series v "); } else if (type == MetaDataType.SEASON) { sbSQL.append("FROM season v "); } else if (type == MetaDataType.PERSON) { sbSQL.append("FROM person v"); } else if (type == MetaDataType.BOXSET) { sbSQL.append("FROM boxed_set v"); } sbSQL.append(", artwork a"); // Artwork must be last for the LEFT JOIN sbSQL.append(SQL_LEFT_JOIN_ARTWORK_LOCATED); sbSQL.append(SQL_LEFT_JOIN_ARTWORK_GENERATED); if (type == MetaDataType.MOVIE) { sbSQL.append(" WHERE v.id=a.videodata_id"); sbSQL.append(" AND v.episode<0"); } else if (type == MetaDataType.SERIES) { sbSQL.append(" WHERE v.id=a.series_id"); } else if (type == MetaDataType.SEASON) { sbSQL.append(" WHERE v.id=a.season_id"); } else if (type == MetaDataType.PERSON) { sbSQL.append(" WHERE v.id=a.person_id"); } else if (type == MetaDataType.BOXSET) { sbSQL.append(" WHERE v.id=a.boxedset_id"); } sbSQL.append(" AND al.id is not null"); sbSQL.append(" AND v.id IN (:id)"); sbSQL.append(SQL_ARTWORK_TYPE_IN_ARTWORKLIST); SqlScalars sqlScalars = new SqlScalars(sbSQL); LOG.info("Artwork SQL: {}", sqlScalars.getSql()); sqlScalars.addScalar("sourceString", StringType.INSTANCE); sqlScalars.addScalar("sourceId", LongType.INSTANCE); sqlScalars.addScalar("artworkId", LongType.INSTANCE); sqlScalars.addScalar("locatedId", LongType.INSTANCE); sqlScalars.addScalar("generatedId", LongType.INSTANCE); sqlScalars.addScalar("artworkTypeString", StringType.INSTANCE); sqlScalars.addScalar(CACHE_DIR, StringType.INSTANCE); sqlScalars.addScalar(CACHE_FILENAME, StringType.INSTANCE); sqlScalars.addParameter(ID, id); sqlScalars.addParameter("artworklist", artworkRequired); List<ApiArtworkDTO> results = executeQueryWithTransform(ApiArtworkDTO.class, sqlScalars, null); return generateIdMapList(results); }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
public void getSeriesInfo(ApiWrapperList<ApiSeriesInfoDTO> wrapper) { OptionsIdArtwork options = (OptionsIdArtwork) wrapper.getOptions(); Long id = options.getId();//ww w.j ava2 s . c o m LOG.info("Getting series information for series ID {}", id); SqlScalars sqlScalars = new SqlScalars(); sqlScalars.addToSql( "SELECT s.id AS seriesId, s.title, s.title_original AS originalTitle, s.start_year AS seriesYear, "); if (options.hasDataItem(DataItem.PLOT)) { sqlScalars.addToSql("s.plot, "); sqlScalars.addScalar("plot", StringType.INSTANCE); } if (options.hasDataItem(DataItem.OUTLINE)) { sqlScalars.addToSql("s.outline, "); sqlScalars.addScalar("outline", StringType.INSTANCE); } sqlScalars.addToSql( "(SELECT min(vid.watched_nfo or vid.watched_file or vid.watched_api) from videodata vid,season sea where vid.season_id=sea.id and sea.series_id=s.id) as watched "); sqlScalars.addToSql("FROM series s"); sqlScalars.addToSql("WHERE id=:id"); sqlScalars.addToSql("ORDER BY id"); sqlScalars.addParameter(ID, id); sqlScalars.addScalar(SERIES_ID, LongType.INSTANCE); sqlScalars.addScalar(TITLE, StringType.INSTANCE); sqlScalars.addScalar(ORIGINAL_TITLE, StringType.INSTANCE); sqlScalars.addScalar(SERIES_YEAR, IntegerType.INSTANCE); sqlScalars.addScalar(WATCHED, BooleanType.INSTANCE); List<ApiSeriesInfoDTO> seriesResults = executeQueryWithTransform(ApiSeriesInfoDTO.class, sqlScalars, wrapper); LOG.debug("Found {} series for ID {}", seriesResults.size(), id); for (ApiSeriesInfoDTO series : seriesResults) { if (options.hasDataItem(DataItem.GENRE)) { series.setGenres(getGenresForId(MetaDataType.SERIES, id)); } if (options.hasDataItem(DataItem.STUDIO)) { series.setStudios(getStudiosForId(MetaDataType.SERIES, id)); } if (options.hasDataItem(DataItem.COUNTRY)) { series.setCountries(getCountriesForId(MetaDataType.SERIES, id)); } if (options.hasDataItem(DataItem.CERTIFICATION)) { series.setCertifications(getCertificationsForId(MetaDataType.SERIES, id)); } if (options.hasDataItem(DataItem.RATING)) { series.setRatings(getRatingsForId(MetaDataType.SERIES, id)); } if (options.hasDataItem(DataItem.AWARD)) { series.setAwards(getAwardsForId(MetaDataType.SERIES, id)); } if (options.hasDataItem(DataItem.ARTWORK)) { Map<Long, List<ApiArtworkDTO>> artworkList = getArtworkForId(MetaDataType.SERIES, id, options.getArtworkTypes()); if (artworkList == null || !artworkList.containsKey(id) || CollectionUtils.isEmpty(artworkList.get(id))) { LOG.debug("No artwork found for seriesId {}", id); } else { for (ApiArtworkDTO artwork : artworkList.get(id)) { series.addArtwork(artwork); } } } series.setSeasonList(getSeasonInfo(options)); } wrapper.setResults(seriesResults); }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
private List<ApiSeasonInfoDTO> getSeasonInfo(OptionsIdArtwork options) { Long id = options.getId();/* ww w .j a va 2s.co m*/ LOG.debug("Getting season information for series ID {}", id); SqlScalars sqlScalars = new SqlScalars(); sqlScalars.addToSql( "SELECT s.series_id AS seriesId, s.id AS seasonId, s.season, s.title, s.title_original AS originalTitle,"); if (options.hasDataItem(DataItem.PLOT)) { sqlScalars.addToSql("s.plot, "); sqlScalars.addScalar("plot", StringType.INSTANCE); } if (options.hasDataItem(DataItem.OUTLINE)) { sqlScalars.addToSql("s.outline, "); sqlScalars.addScalar("outline", StringType.INSTANCE); } sqlScalars.addToSql( "(SELECT min(vid.watched_nfo or vid.watched_file or vid.watched_api) from videodata vid where vid.season_id=s.id) as watched "); sqlScalars.addToSql("FROM season s"); sqlScalars.addToSql("WHERE series_id=:id"); sqlScalars.addToSql("ORDER BY series_id, season"); sqlScalars.addParameter(ID, id); sqlScalars.addScalar(SERIES_ID, LongType.INSTANCE); sqlScalars.addScalar(SEASON_ID, LongType.INSTANCE); sqlScalars.addScalar(SEASON, IntegerType.INSTANCE); sqlScalars.addScalar(TITLE, StringType.INSTANCE); sqlScalars.addScalar(ORIGINAL_TITLE, StringType.INSTANCE); sqlScalars.addScalar(WATCHED, BooleanType.INSTANCE); List<ApiSeasonInfoDTO> seasonResults = executeQueryWithTransform(ApiSeasonInfoDTO.class, sqlScalars, null); LOG.debug("Found {} seasons for series ID {}", seasonResults.size(), id); if (options.hasDataItem(DataItem.ARTWORK)) { for (ApiSeasonInfoDTO season : seasonResults) { Map<Long, List<ApiArtworkDTO>> artworkList = getArtworkForId(MetaDataType.SEASON, season.getSeasonId(), options.getArtworkTypes()); if (artworkList == null || !artworkList.containsKey(season.getSeasonId()) || CollectionUtils.isEmpty(artworkList.get(season.getSeasonId()))) { LOG.debug("No artwork found for series ID {} and season {}", id, season.getSeason()); } else { for (ApiArtworkDTO artwork : artworkList.get(season.getSeasonId())) { season.addArtwork(artwork); } } } } return seasonResults; }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
/** * Get a single Count and Timestamp//from w w w.j av a2s.c o m * * @param type * @param tablename * @param clause * @return */ public CountTimestamp getCountTimestamp(MetaDataType type, String tablename, String clause) { if (StringUtils.isBlank(tablename)) { return null; } StringBuilder sql = new StringBuilder("SELECT '").append(type).append("' as typeString, "); sql.append("count(*) as count, "); sql.append("MAX(create_timestamp) as createTimestamp, "); sql.append("MAX(update_timestamp) as updateTimestamp, "); sql.append("MAX(id) as lastId "); sql.append("FROM ").append(tablename); if (StringUtils.isNotBlank(clause)) { sql.append(" WHERE ").append(clause); } SqlScalars sqlScalars = new SqlScalars(sql); sqlScalars.addScalar("typeString", StringType.INSTANCE); sqlScalars.addScalar("count", LongType.INSTANCE); sqlScalars.addScalar("createTimestamp", TimestampType.INSTANCE); sqlScalars.addScalar("updateTimestamp", TimestampType.INSTANCE); sqlScalars.addScalar("lastId", LongType.INSTANCE); List<CountTimestamp> results = executeQueryWithTransform(CountTimestamp.class, sqlScalars, null); if (CollectionUtils.isEmpty(results)) { return new CountTimestamp(type); } return results.get(0); }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
/** * Get a count of the jobs along with a count * * @param requiredJobs// w w w.j av a 2 s . c o m * @return */ public List<CountGeneric> getJobCount(List<String> requiredJobs) { LOG.info("getJobCount: Required Jobs: {}", (requiredJobs == null ? "all" : requiredJobs)); SqlScalars sqlScalars = new SqlScalars(); sqlScalars.addToSql("SELECT job AS item, COUNT(*) AS count"); sqlScalars.addToSql("FROM cast_crew"); if (CollectionUtils.isNotEmpty(requiredJobs)) { sqlScalars.addToSql("WHERE job IN (:joblist)"); sqlScalars.addParameter("joblist", requiredJobs); } sqlScalars.addToSql("GROUP BY job"); sqlScalars.addScalar("item", StringType.INSTANCE); sqlScalars.addScalar("count", LongType.INSTANCE); return executeQueryWithTransform(CountGeneric.class, sqlScalars, null); }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
public void statSeriesCount() { SqlScalars sqlScalars = new SqlScalars(); sqlScalars.addToSql("SELECT s.id AS seriesId, title, start_year AS seriesYear"); sqlScalars.addToSql("FROM series s"); sqlScalars.addScalar(SERIES_ID, LongType.INSTANCE); sqlScalars.addScalar(TITLE, StringType.INSTANCE); sqlScalars.addScalar(SERIES_YEAR, IntegerType.INSTANCE); // Get the results List<ApiSeriesInfoDTO> seriesResults = executeQueryWithTransform(ApiSeriesInfoDTO.class, sqlScalars, null); if (!seriesResults.isEmpty()) { // Set the default oldest and newest ApiSeriesInfoDTO oldest = seriesResults.get(0); ApiSeriesInfoDTO newest = seriesResults.get(0); for (ApiSeriesInfoDTO series : seriesResults) { if (series.getYear() > newest.getYear()) { newest = series;// ww w .ja v a 2 s .c o m } if (series.getYear() < oldest.getYear()) { oldest = series; } } } // Process the results into statistics }
From source file:org.yamj.core.database.dao.ApiDao.java
License:Open Source License
/** * Get list of external IDs for a metadata object. * //from w w w . ja va2 s . c o m * @param type the metadata type * @param id the id of the metadata object * @return */ private List<ApiExternalIdDTO> getExternalIdsForId(MetaDataType type, Long id) { SqlScalars sqlScalars = new SqlScalars(); if (type == MetaDataType.SERIES) { sqlScalars.addToSql( "SELECT ids.series_id AS id, ids.sourcedb_id AS externalId, ids.sourcedb AS sourcedb,"); sqlScalars.addToSql( "concat(coalesce(ser.skip_scan_api,''),';',coalesce(ser.skip_scan_nfo,'')) like concat('%',ids.sourcedb,'%') as skipped"); sqlScalars.addToSql("FROM series ser, series_ids ids"); sqlScalars.addToSql("WHERE ser.id=:id AND ids.series_id=ser.id"); } else if (type == MetaDataType.SEASON) { sqlScalars.addToSql( "SELECT ids.season_id AS id, ids.sourcedb_id AS externalId, ids.sourcedb AS sourcedb, 0 as skipped"); sqlScalars.addToSql("FROM season_ids ids"); sqlScalars.addToSql("WHERE ids.season_id=:id"); } else if (type == MetaDataType.PERSON) { sqlScalars.addToSql( "SELECT ids.person_id AS id, ids.sourcedb_id AS externalId, ids.sourcedb AS sourcedb,"); sqlScalars.addToSql("coalesce(p.skip_scan_api,'') like concat('%',ids.sourcedb,'%') as skipped"); sqlScalars.addToSql("FROM person p, person_ids ids"); sqlScalars.addToSql("WHERE p.id=:id AND ids.person_id=p.id"); } else { sqlScalars.addToSql( "SELECT ids.videodata_id AS id, ids.sourcedb_id AS externalId, ids.sourcedb AS sourcedb,"); sqlScalars.addToSql( "concat(coalesce(vd.skip_scan_api,''),';',coalesce(vd.skip_scan_nfo,'')) like concat('%',ids.sourcedb,'%') as skipped"); sqlScalars.addToSql("FROM videodata vd, videodata_ids ids"); sqlScalars.addToSql("WHERE vd.id=:id AND ids.videodata_id=vd.id"); } sqlScalars.addParameter(ID, id); sqlScalars.addScalar(ID, LongType.INSTANCE); sqlScalars.addScalar("externalId", StringType.INSTANCE); sqlScalars.addScalar("sourcedb", StringType.INSTANCE); sqlScalars.addScalar("skipped", BooleanType.INSTANCE); return executeQueryWithTransform(ApiExternalIdDTO.class, sqlScalars, null); }