List of usage examples for org.hibernate.criterion Projections property
public static PropertyProjection property(String propertyName)
From source file:com.romeikat.datamessie.core.base.query.entity.execute.AbstractEntityQueryExecutor.java
License:Open Source License
public void applyDistinctPropertyProjection(final Criteria criteria, final String propertyName) { criteria.setProjection(Projections.distinct(Projections.property(propertyName))); }
From source file:com.romeikat.datamessie.core.base.service.SourceService.java
License:Open Source License
public String getNewName(final SharedSessionContract ssc) { // Get all names final EntityWithIdQuery<Source> sourceQuery = new EntityWithIdQuery<>(Source.class); final ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("name"), "name"); final List<String> names = (List<String>) sourceQuery.listForProjection(ssc, projectionList); // Determine new name int counter = 1; while (true) { final String candidateName = "New source #" + counter; if (!stringUtil.containsIgnoreCase(names, candidateName)) { return candidateName; } else {/* www. ja v a2s.co m*/ counter++; } } }
From source file:com.romeikat.datamessie.core.base.util.publishedDates.PublishedDateStrategy.java
License:Open Source License
private List<LocalDateTime> getAllPublishedTimestamps(final SharedSessionContract ssc) { // Query/* w ww . ja va 2 s . com*/ final Criteria criteria = ssc.createCriteria(Document.class); criteria.add(Restrictions.isNotNull("published")); // Projection criteria.setProjection(Projections.property("published")); // Done @SuppressWarnings("unchecked") final List<LocalDateTime> publishedTimestamps = criteria.list(); return publishedTimestamps; }
From source file:com.romeikat.datamessie.core.statistics.dao.DocumentDao.java
License:Open Source License
public List<DocumentStatisticsDto> getAsDocumentStatisticsDtos(final SharedSessionContract ssc, final Long sourceId, final LocalDate published) { final LocalDateTime minPublished = published == null ? null : LocalDateTime.of(published, LocalTime.MIDNIGHT); final LocalDateTime maxPublished = published == null ? null : LocalDateTime.of(published.plusDays(1), LocalTime.MIDNIGHT); // Query: Document final EntityWithIdQuery<Document> documentQuery = new EntityWithIdQuery<>(Document.class); if (sourceId != null) { documentQuery.addRestriction(Restrictions.eq("sourceId", sourceId)); }//w w w .j a v a 2 s. c o m if (minPublished != null) { documentQuery.addRestriction(Restrictions.ge("published", minPublished)); } if (maxPublished != null) { documentQuery.addRestriction(Restrictions.lt("published", maxPublished)); } documentQuery.setResultTransformer(new AliasToBeanResultTransformer(DocumentStatisticsDto.class)); // Done final ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("id"), "documentId"); projectionList.add(Projections.property("sourceId"), "sourceId"); projectionList.add(Projections.property("published"), "published"); projectionList.add(Projections.property("state"), "state"); @SuppressWarnings("unchecked") final List<DocumentStatisticsDto> dtos = (List<DocumentStatisticsDto>) documentQuery.listForProjection(ssc, projectionList); return dtos; }
From source file:com.rta.vsd.data.service.impl.InspectionDataServiceImpl.java
/** * //w w w . j a va 2s . com * Gets a list of inspection from the plate details specified * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param vehiclePlateDetails * @param paginationValues * @return List<VsdInspection> * @throws VSDDataAccessException */ public List<VsdInspection> getInspectionsByPlateDetails(final DataServiceContext dsContext, boolean retrieveArabicData, VehiclePlate vehiclePlateDetails, PaginationParam paginationValues) throws VSDDataAccessException { logger.info("getInspectionsByPlateDetails -- START"); List<VsdInspection> inspections = null; try { Session session = (Session) dsContext.getInternalContext(); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("inspections.inspectionId"), "inspectionId"); Criteria crit = session.createCriteria(VsdInspection.class, "inspections") .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN, Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN, Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN, Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vehicleInfo.vehiclePlateCategory", vehiclePlateDetails.getPlateCategory()) .ignoreCase()) .add(Restrictions.eq("vehicleInfo.vehiclePlateCode", vehiclePlateDetails.getPlateCode()) .ignoreCase()) .add(Restrictions.eq("vehicleInfo.vehiclePlateSource", vehiclePlateDetails.getPlateSource()) .ignoreCase()) .add(Restrictions.eq("vehicleInfo.vehiclePlateNumber", vehiclePlateDetails.getPlateNumber()) .ignoreCase()) .addOrder(Order.desc("inspections.inspectionId")) .setProjection(Projections.distinct(projectionList)); crit.setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class)); if (paginationValues.getFirstResult() != null && paginationValues.getFirstResult().longValue() != -1) { crit.setFirstResult(paginationValues.getFirstResult().intValue()); } if (paginationValues.getFetchedSize() != null && paginationValues.getFetchedSize().longValue() != -1) { crit.setMaxResults(paginationValues.getFetchedSize().intValue()); } List list = crit.list(); logger.debug("list.size() : " + list.size()); Set resultSet = new HashSet(list); logger.debug("resultSet.size() : " + resultSet.size()); if (resultSet.size() == 0) return new ArrayList(); Iterator iterator = resultSet.iterator(); ArrayList innerQueryList = new ArrayList<Long>(); while (iterator.hasNext()) { VsdInspection inspection = (VsdInspection) iterator.next(); innerQueryList.add(inspection.getInspectionId()); } Criteria main = session.createCriteria(VsdInspection.class, "inspections") .add(Property.forName("inspections.inspectionId").in(innerQueryList)) .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN, Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN, Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN, Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vehicleInfo.vehiclePlateCategory", vehiclePlateDetails.getPlateCategory()) .ignoreCase()) .add(Restrictions.eq("vehicleInfo.vehiclePlateCode", vehiclePlateDetails.getPlateCode()) .ignoreCase()) .add(Restrictions.eq("vehicleInfo.vehiclePlateSource", vehiclePlateDetails.getPlateSource()) .ignoreCase()) .add(Restrictions.eq("vehicleInfo.vehiclePlateNumber", vehiclePlateDetails.getPlateNumber()) .ignoreCase()) .addOrder(Order.desc("inspections.inspectionId")); inspections = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); logger.info("getInspectionsByPlateDetails -- END"); return inspections; } catch (Exception ex) { logger.error("An error occured in getInspectionsByPlateDetails()"); throw new VSDDataAccessException(ex.getMessage(), ex); } }
From source file:com.rta.vsd.data.service.impl.InspectionDataServiceImpl.java
/** * //from ww w.j a v a2s. c om * Gets all the inspections for vehicles owned by the owner with the specified trade license number * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param traficFileNo * @param paginationParam * @return List<VsdInspection> * @throws VSDDataAccessException */ public List<VsdInspection> getInspectionsByTraficFileNumber(final DataServiceContext dsContext, boolean retrieveArabicData, String traficFileNo, PaginationParam param) throws VSDDataAccessException { logger.info("getInspectionsByTraficFileNumber -- START"); List<VsdInspection> inspections; try { Session session = (Session) dsContext.getInternalContext(); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("inspections.inspectionId"), "inspectionId"); projectionList.add(Projections.property("inspections.createdTimestamp"), "createdTimestamp"); inspections = session.createCriteria(VsdInspection.class, "inspections") .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN, Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN, Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN, Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vehicleInfo.vsdOwnerInfos", "ownerInfo", Criteria.LEFT_JOIN, Restrictions.eq("ownerInfo.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("ownerInfo.trafficFileNumber", traficFileNo).ignoreCase()) .addOrder(Order.desc("inspections.createdTimestamp")) .setProjection(Projections.distinct(projectionList)) .setFirstResult(param.getFirstResult().intValue()) .setMaxResults(param.getFetchedSize().intValue()) .setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class)).list(); if (inspections.size() == 0) return new ArrayList(); Iterator iterator = inspections.iterator(); ArrayList innerQueryList = new ArrayList<Long>(); while (iterator.hasNext()) { VsdInspection inspection = (VsdInspection) iterator.next(); innerQueryList.add(inspection.getInspectionId()); } inspections = session.createCriteria(VsdInspection.class, "inspections") .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN, Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN, Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN, Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vehicleInfo.vsdOwnerInfos", "ownerInfo", Criteria.LEFT_JOIN, Restrictions.eq("ownerInfo.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("ownerInfo.trafficFileNumber", traficFileNo).ignoreCase()) .add(Restrictions.in("inspections.inspectionId", innerQueryList)) .addOrder(Order.desc("inspections.createdTimestamp")).list(); } catch (Exception ex) { logger.error("An error occured in getInspectionsByTraficFileNumber()"); throw new VSDDataAccessException(ex.getMessage(), ex); } logger.info("getInspectionsByTraficFileNumber -- END"); return inspections; }
From source file:com.rta.vsd.data.service.impl.InspectionDataServiceImpl.java
/** * //from w w w.ja v a2s .c om * Gets all the inspections for vehicles owned by the owner with the specified trade license number * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param tradeLicenseNumber * @param paginationValues * @return List<VsdInspection> * @throws VSDDataAccessException */ public List<VsdInspection> getInspectionsByTradeLicenseNumber(final DataServiceContext dsContext, boolean retrieveArabicData, String tradeLicenseNumber, PaginationParam paginationValues) throws VSDDataAccessException { logger.info("getInspectionsByTradeLicenseNumber -- START"); List<VsdInspection> inspections = null; try { Session session = (Session) dsContext.getInternalContext(); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("inspections.inspectionId"), "inspectionId"); Criteria crit = session.createCriteria(VsdInspection.class, "inspections") .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN, Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN, Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN, Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vehicleInfo.vsdOwnerInfos", "ownerInfo", Criteria.LEFT_JOIN, Restrictions.eq("ownerInfo.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("ownerInfo.tradeLicenseNumber", tradeLicenseNumber).ignoreCase()) .addOrder(Order.desc("inspections.inspectionId")); crit.setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class)); if (paginationValues.getFirstResult() != null && paginationValues.getFirstResult().longValue() != -1) { crit.setFirstResult(paginationValues.getFirstResult().intValue()); } if (paginationValues.getFetchedSize() != null && paginationValues.getFetchedSize().longValue() != -1) { crit.setMaxResults(paginationValues.getFetchedSize().intValue()); } List list = crit.list(); logger.debug("list.size() : " + list.size()); Set resultSet = new HashSet(list); logger.debug("resultSet.size() : " + resultSet.size()); if (resultSet.size() == 0) return new ArrayList(); Iterator iterator = resultSet.iterator(); ArrayList innerQueryList = new ArrayList<Long>(); while (iterator.hasNext()) { VsdInspection inspection = (VsdInspection) iterator.next(); innerQueryList.add(inspection.getInspectionId()); } Criteria main = session.createCriteria(VsdInspection.class, "inspections") .add(Property.forName("inspections.inspectionId").in(innerQueryList)) .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN, Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN, Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN, Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vehicleInfo.vsdOwnerInfos", "ownerInfo", Criteria.LEFT_JOIN, Restrictions.eq("ownerInfo.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("ownerInfo.tradeLicenseNumber", tradeLicenseNumber).ignoreCase()) .addOrder(Order.desc("inspections.inspectionId")); inspections = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); logger.info("getInspectionsByTradeLicenseNumber -- END"); return inspections; } catch (Exception ex) { logger.error("An error occured in getInspectionsByTradeLicenseNumber()"); throw new VSDDataAccessException(ex.getMessage(), ex); } }
From source file:com.rta.vsd.data.service.impl.InspectionDataServiceImpl.java
/** * /* w ww. j a va 2 s. c o m*/ * get Inspections By ChassisNumber * one overloaded method is associated method * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param vehicleChassisNumber * @return List<VsdInspection> * @throws VSDDataAccessException */ public List<VsdInspection> getInspectionsByChassisNumber(final DataServiceContext dsContext, boolean retrieveArabicData, String vehicleChassisNumber, int maxResults) throws VSDDataAccessException { logger.info("getInspectionsByChassisNumber -- START"); List<VsdInspection> inspections; try { Session session = (Session) dsContext.getInternalContext(); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("i.inspectionId"), "inspectionId"); projectionList.add(Projections.property("i.inspectionTimestamp"), "inspectionTimestamp"); Criteria projectionCriteria = session.createCriteria(VsdInspection.class, "i") .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vi.vehicleChassisNumber", vehicleChassisNumber).ignoreCase()) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN, Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN, Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN, Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN, Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE)) .setProjection(Projections.projectionList().add(Projections.property("i.inspectionId"))) .setProjection(Projections.distinct(projectionList)) .addOrder(Order.desc("i.inspectionTimestamp")) .setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class)) .setMaxResults(maxResults); List list = projectionCriteria.list(); logger.debug("list.size() : " + list.size()); Set resultSet = new HashSet(list); logger.debug("resultSet.size() : " + resultSet.size()); if (resultSet.size() == 0) return new ArrayList(); Iterator iterator = resultSet.iterator(); ArrayList innerQueryList = new ArrayList<Long>(); while (iterator.hasNext()) { VsdInspection vsdInspection = (VsdInspection) iterator.next(); innerQueryList.add(vsdInspection.getInspectionId()); } inspections = session.createCriteria(VsdInspection.class, "i") .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vi.vehicleChassisNumber", vehicleChassisNumber).ignoreCase()) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN, Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN, Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN, Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN, Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE)) .addOrder(Order.desc("i.inspectionTimestamp")) .add(Property.forName("i.inspectionId").in(innerQueryList)) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); logger.debug("inspections.size() : " + inspections.size()); } catch (Exception ex) { logger.error("An error occured in getInspectionsByChassisNumber()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } logger.info("getInspectionsByChassisNumber -- END"); return inspections; }
From source file:com.rta.vsd.data.service.impl.InspectionDataServiceImpl.java
/** * /*from w w w .j a v a2 s . c om*/ * get Inspections By VehiclePlate for webservice * one overloaded method is associated method * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param vehiclePlate * @return List<VsdInspection> * @throws VSDDataAccessException */ public List<VsdInspection> getInspectionsByVehiclePlateForWS(final DataServiceContext dsContext, boolean retrieveArabicData, VehiclePlate vehiclePlate, int maxResults) throws VSDDataAccessException { logger.info("getInspectionsByVehiclePlateForWS -- START"); List<VsdInspection> inspections; try { Session session = (Session) dsContext.getInternalContext(); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("i.inspectionId"), "inspectionId"); projectionList.add(Projections.property("i.inspectionTimestamp"), "inspectionTimestamp"); Criteria projectionCriteria = session.createCriteria(VsdInspection.class, "i") .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vi.vehiclePlateCategory", vehiclePlate.getPlateCategory()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateCode", vehiclePlate.getPlateCode()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateSource", vehiclePlate.getPlateSource()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateNumber", vehiclePlate.getPlateNumber()).ignoreCase()) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN, Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN, Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN, Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN, Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE)) .setProjection(Projections.projectionList().add(Projections.property("i.inspectionId"))) .setProjection(Projections.distinct(projectionList)) .addOrder(Order.desc("i.inspectionTimestamp")) .setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class)) .setMaxResults(maxResults); List list = projectionCriteria.list(); logger.debug("list.size() : " + list.size()); Set resultSet = new HashSet(list); logger.debug("resultSet.size() : " + resultSet.size()); if (resultSet.size() == 0) return new ArrayList(); Iterator iterator = resultSet.iterator(); ArrayList innerQueryList = new ArrayList<Long>(); while (iterator.hasNext()) { VsdInspection vsdInspection = (VsdInspection) iterator.next(); innerQueryList.add(vsdInspection.getInspectionId()); } inspections = session.createCriteria(VsdInspection.class, "i") .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vi.vehiclePlateCategory", vehiclePlate.getPlateCategory()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateCode", vehiclePlate.getPlateCode()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateSource", vehiclePlate.getPlateSource()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateNumber", vehiclePlate.getPlateNumber()).ignoreCase()) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN, Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN, Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN, Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN, Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE)) .addOrder(Order.desc("i.inspectionTimestamp")) .add(Property.forName("i.inspectionId").in(innerQueryList)) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); logger.debug("inspections.size() : " + inspections.size()); } catch (Exception ex) { logger.error("An error occured in getInspectionsByVehiclePlateForWS()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } logger.info("getInspectionsByVehiclePlateForWS -- END"); return inspections; }
From source file:com.rta.vsd.data.service.impl.InspectionDataServiceImpl.java
/** * //from w w w . j a v a 2 s . co m * get Inspections By VehiclePlate for webservice * one overloaded method is associated method * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param vehiclePlate * @param firstResult * @param maxResults * @return List<VsdInspection> * @throws VSDDataAccessException */ public List<VsdInspection> getInspectionsByVehiclePlateForWS(final DataServiceContext dsContext, boolean retrieveArabicData, VehiclePlate vehiclePlate, int firstResult, int maxResults) throws VSDDataAccessException { logger.info("getInspectionsByVehiclePlateForWS -- START"); List<VsdInspection> inspections; try { Session session = (Session) dsContext.getInternalContext(); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("i.inspectionId"), "inspectionId"); projectionList.add(Projections.property("i.inspectionTimestamp"), "inspectionTimestamp"); Criteria projectionCriteria = session.createCriteria(VsdInspection.class, "i") .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vi.vehiclePlateCategory", vehiclePlate.getPlateCategory()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateCode", vehiclePlate.getPlateCode()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateSource", vehiclePlate.getPlateSource()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateNumber", vehiclePlate.getPlateNumber()).ignoreCase()) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN, Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN, Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN, Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN, Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE)) .setProjection(Projections.projectionList().add(Projections.property("i.inspectionId"))) .setProjection(Projections.distinct(projectionList)) .addOrder(Order.desc("i.inspectionTimestamp")) .setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class)) .setFirstResult(firstResult).setMaxResults(maxResults); List list = projectionCriteria.list(); logger.debug("list.size() : " + list.size()); Set resultSet = new HashSet(list); logger.debug("resultSet.size() : " + resultSet.size()); if (resultSet.size() == 0) return new ArrayList(); Iterator iterator = resultSet.iterator(); ArrayList innerQueryList = new ArrayList<Long>(); while (iterator.hasNext()) { VsdInspection vsdInspection = (VsdInspection) iterator.next(); innerQueryList.add(vsdInspection.getInspectionId()); } inspections = session.createCriteria(VsdInspection.class, "i") .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vi.vehiclePlateCategory", vehiclePlate.getPlateCategory()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateCode", vehiclePlate.getPlateCode()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateSource", vehiclePlate.getPlateSource()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateNumber", vehiclePlate.getPlateNumber()).ignoreCase()) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN, Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN, Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN, Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN, Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE)) .addOrder(Order.desc("i.inspectionTimestamp")) .add(Property.forName("i.inspectionId").in(innerQueryList)) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); logger.debug("inspections.size() : " + inspections.size()); } catch (Exception ex) { logger.error("An error occured in getInspectionsByVehiclePlateForWS()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } logger.info("getInspectionsByVehiclePlateForWS -- END"); return inspections; }