List of usage examples for org.hibernate.criterion Restrictions in
public static Criterion in(String propertyName, Collection values)
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * /*from www . j a va2 s . c o m*/ * Gets a list of violations with their associated defects(VsdChannelDefect) by their statuses * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param statuses * @param testStatus * @param reportedDate * @param isViolationDefect * @return List<VsdViolation> * @throws VSDDataAccessException */ public List<VsdViolation> getViolationsWithDefectsByStatuses(DataServiceContext dsContext, boolean retrieveArabicData, List<Long> violationStatusIds, String testStatus, Date reportedDate, Character isViolationDefect) throws VSDDataAccessException { logger.info("getViolationsWithDefectsByStatuses -- START"); List<VsdViolation> violations = null; try { Session session = (Session) dsContext.getInternalContext(); Criteria criteria = session.createCriteria(VsdViolation.class, "violations") .add(Restrictions.eq("violations.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("violations.reportedDate", reportedDate)) .createCriteria("violations.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdPlateConditionByFrontPlateConditionId", "fpc", Criteria.LEFT_JOIN, Restrictions.eq("fpc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdPlateConditionByRearPlateConditionId", "rpc", Criteria.LEFT_JOIN, Restrictions.eq("rpc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vi.vsdDriverInfos", "di", Criteria.LEFT_JOIN, Restrictions.eq("di.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violations.vsdSeverityLevel", "s", Criteria.LEFT_JOIN, Restrictions.eq("s.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violations.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("cd.isViolationDefect", isViolationDefect)) .createCriteria("cd.vsdDefect", "def", Criteria.LEFT_JOIN, Restrictions.eq("def.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelDefectTests", "cdt", Criteria.LEFT_JOIN, Restrictions.eq("cdt.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cdt.vsdChannelTest", "ct", Criteria.LEFT_JOIN, Restrictions.eq("ct.isDeleted", IDataService.BOOL_FALSE)); if (testStatus != null) { criteria.add(Restrictions.eq("ct.testStatus", testStatus)); } criteria.createCriteria("violations.vsdViolationStatus", "vs", Criteria.LEFT_JOIN, Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE)) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY) .add(Restrictions.in("vs.violationStatusId", violationStatusIds)); violations = criteria.list(); logger.info("getViolationsWithDefectsByStatuses -- END"); return violations; } catch (Exception ex) { logger.error("An error occured in getViolationsWithDefectsByStatuses()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * //from ww w .ja v a 2 s . c o m * Gets a list of violations with their associated defects(VsdChannelDefect) by their statuses and due date * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param statuses * @param testStatus * @param dueDate * @return List<VsdViolation> * @throws VSDDataAccessException */ public List<VsdViolation> getViolationsWithDefectsByStatusesAndDueDate(DataServiceContext dsContext, boolean retrieveArabicData, List<Long> violationStatusIds, String testStatus, Date dueDate) throws VSDDataAccessException { logger.info("getViolationsWithDefectsByStatusesAndDueDate -- START"); List<VsdViolation> violations = null; try { Session session = (Session) dsContext.getInternalContext(); Criteria criteria = session.createCriteria(VsdViolation.class, "violations") .add(Restrictions.eq("violations.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("violations.dueDate", dueDate)) .createCriteria("violations.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdPlateConditionByFrontPlateConditionId", "fpc", Criteria.LEFT_JOIN, Restrictions.eq("fpc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdPlateConditionByRearPlateConditionId", "rpc", Criteria.LEFT_JOIN, Restrictions.eq("rpc.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vi.vsdDriverInfos", "di", Criteria.LEFT_JOIN, Restrictions.eq("di.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violations.vsdSeverityLevel", "s", Criteria.LEFT_JOIN, Restrictions.eq("s.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violations.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelDefectTests", "cdt", Criteria.LEFT_JOIN, Restrictions.eq("cdt.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cdt.vsdChannelTest", "ct", Criteria.LEFT_JOIN, Restrictions.eq("ct.isDeleted", IDataService.BOOL_FALSE)); if (testStatus != null) { criteria.add(Restrictions.eq("ct.testStatus", testStatus)); } criteria.createCriteria("violations.vsdViolationStatus", "vs", Criteria.LEFT_JOIN, Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE)) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY) .add(Restrictions.in("vs.violationStatusId", violationStatusIds)); violations = criteria.list(); logger.info("getViolationsWithDefectsByStatusesAndDueDate -- END"); return violations; } catch (Exception ex) { logger.error("An error occured in getViolationsWithDefectsByStatusesAndDueDate()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * //from www . j a va2 s . c o m * get Violation With Inspections And ChannelDefects By ViolationTicketCode * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param violationTicketCode * @return VsdViolation * @throws VSDDataAccessException */ public VsdViolation getViolationWithInspectionsAndChannelDefectsByViolationTicketCode( DataServiceContext dsContext, boolean retrieveArabicData, String violationTicketCode, List<Long> violationStatusIds) throws VSDDataAccessException { logger.info("getViolationWithInspectionsAndChannelDefectsByViolationTicketCode -- START"); VsdViolation violation = null; try { Session session = (Session) dsContext.getInternalContext(); violation = (VsdViolation) session.createCriteria(VsdViolation.class, "violations") .add(Restrictions.eq("violations.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("violations.violationTicketCode", violationTicketCode).ignoreCase()) .createCriteria("violations.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdDefect", "d", Criteria.LEFT_JOIN, Restrictions.eq("d.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violations.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("violations.vsdViolationStatus.violationStatusId", violationStatusIds)) .uniqueResult(); logger.info("getViolationWithInspectionsAndChannelDefectsByViolationTicketCode -- END"); return violation; } catch (Exception ex) { logger.error("An error occured in getViolationWithInspectionsAndChannelDefectsByViolationTicketCode()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * /*from ww w . j a v a2 s . c om*/ * get Violation With Inspections And ChannelDefects By ViolationTicketCode * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param violationTicketCode * @param violationStatusIds * @param isViolationDefect * @return VsdViolation * @throws VSDDataAccessException */ public VsdViolation getViolationWithInspectionsAndChannelDefectsByViolationTicketCode( DataServiceContext dsContext, boolean retrieveArabicData, String violationTicketCode, List<Long> violationStatusIds, Character isViolationDefect) throws VSDDataAccessException { logger.info("getViolationWithInspectionsAndChannelDefectsByViolationTicketCode -- START"); VsdViolation violation = null; try { Session session = (Session) dsContext.getInternalContext(); violation = (VsdViolation) session.createCriteria(VsdViolation.class, "violations") .add(Restrictions.eq("violations.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("violations.violationTicketCode", violationTicketCode).ignoreCase()) .createCriteria("violations.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("cd.isViolationDefect", isViolationDefect)) .createCriteria("cd.vsdDefect", "d", Criteria.LEFT_JOIN, Restrictions.eq("d.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violations.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("violations.vsdViolationStatus.violationStatusId", violationStatusIds)) .uniqueResult(); logger.info("getViolationWithInspectionsAndChannelDefectsByViolationTicketCode -- END"); return violation; } catch (Exception ex) { logger.error("An error occured in getViolationWithInspectionsAndChannelDefectsByViolationTicketCode()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * //from w ww. j a va 2 s . com * get List of OpenViolations By ChassisNumber * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param chassisNumber * @param violationStatusIds * @return List<VsdViolation> * @throws VSDException */ public List<VsdViolation> getOpenViolationsByChassisNumber(final DataServiceContext dsContext, boolean retrieveArabicData, String vehicleChassisNumber, List<Long> violationStatusIds) throws VSDDataAccessException { logger.info("getOpenViolationsByChassisNumber -- START"); List<VsdViolation> violations = null; try { Session session = (Session) dsContext.getInternalContext(); violations = session.createCriteria(VsdViolation.class, "v") .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdDefect", "d", Criteria.LEFT_JOIN, Restrictions.eq("d.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("vi.vehicleChassisNumber", vehicleChassisNumber).ignoreCase()) .add(Restrictions.in("v.vsdViolationStatus.violationStatusId", violationStatusIds)) .addOrder(Order.asc("v.createdTimestamp")).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY) .list(); } catch (Exception ex) { ex.printStackTrace(); logger.error(ex.getMessage()); logger.error("An error occured in getOpenViolationsByChassisNumber()"); throw new VSDDataAccessException(ex.getMessage(), ex); } logger.info("getOpenViolationsByChassisNumber -- END"); return violations; }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * /*from w ww. jav a2 s . c o m*/ * get List of OpenViolations By VehiclePlate * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param vehiclePlate * @param violationStatusIds * @return List<VsdViolation> * @throws VSDException */ public List<VsdViolation> getOpenViolationsByVehiclePlate(final DataServiceContext dsContext, boolean retrieveArabicData, VehiclePlate vehiclePlate, List<Long> violationStatusIds) throws VSDDataAccessException { logger.info("getOpenViolationsByVehiclePlate -- START"); List<VsdViolation> violations = null; try { Session session = (Session) dsContext.getInternalContext(); violations = session.createCriteria(VsdViolation.class, "v") .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdDefect", "d", Criteria.LEFT_JOIN, Restrictions.eq("d.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()) .add(Restrictions.in("v.vsdViolationStatus.violationStatusId", violationStatusIds)) .addOrder(Order.asc("v.createdTimestamp")).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY) .list(); } catch (Exception ex) { logger.error("An error occured in getOpenViolationsByVehiclePlate()"); throw new VSDDataAccessException(ex.getMessage(), ex); } logger.info("getOpenViolationsByVehiclePlate -- END"); return violations; }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * //from w w w. j a v a2s . c o m * Gets a list of violations by the violation status ids, test status and test date provided. * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param testStatus * @param startDate * @param endDate * @param violationStatusIds * @return List<VsdViolation> * @throws VSDDataAccessException */ public List<VsdViolation> getViolationsByTestStatusTestDateAndViolationStatusId(DataServiceContext dsContext, boolean retrieveArabicData, String testStatus, Date startDate, Date endDate, List<Long> violationStatusIds) throws VSDDataAccessException { logger.info("getViolationsByTestStatusTestDateAndViolationStatusId -- START"); List<VsdViolation> violations = null; try { // Calendar startDate = Calendar.getInstance(); // startDate.setTime(testDate); // startDate.set(Calendar.HOUR_OF_DAY, 0); // startDate.set(Calendar.MINUTE, 0); // startDate.set(Calendar.SECOND, 0); // startDate.set(Calendar.MILLISECOND, 0); // // Calendar endDate = Calendar.getInstance(); // endDate.setTime(testDate); // endDate.set(Calendar.HOUR_OF_DAY, 23); // endDate.set(Calendar.MINUTE, 59); // endDate.set(Calendar.SECOND, 59); // endDate.set(Calendar.MILLISECOND, 999); Session session = (Session) dsContext.getInternalContext(); violations = session.createCriteria(VsdViolation.class, "v") .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdViolationStatus", "vs", Criteria.LEFT_JOIN, Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("vs.violationStatusId", violationStatusIds)) .createCriteria("v.vsdViolationTestFees", "vtf", Criteria.LEFT_JOIN, Restrictions.eq("vtf.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vtf.vsdTestFee", "tf", Criteria.LEFT_JOIN, Restrictions.eq("tf.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("tf.vsdChannelTests", "ct", Criteria.LEFT_JOIN, Restrictions.eq("ct.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("ct.testStatus", testStatus)) .add(Restrictions.between("ct.createdTimestamp", startDate, endDate)) .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdSeverityLevel", "svl", Criteria.LEFT_JOIN, Restrictions.eq("svl.isDeleted", IDataService.BOOL_FALSE)) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); logger.info("getViolationsByTestStatusTestDateAndViolationStatusId -- END"); return violations; } catch (Exception ex) { logger.error("An error occured in getViolationsByTestStatusTestDateAndViolationStatusId()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * // ww w . jav a2 s .co m * Gets a list of violations for those vehicles whose plate has been confiscated and the violation has the status provided and the inspection occurred on the specified date. * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param violationStatusIds * @param startDate * @param endDate * @return List<VsdViolation> * @throws VSDDataAccessException */ public List<VsdViolation> getPlateConfiscatedViolationsByViolationStatusIdAndInspectionDate( DataServiceContext dsContext, boolean retrieveArabicData, List<Long> violationStatusIds, Long severityLevelId, Date startDate, Date endDate) throws VSDDataAccessException { logger.info("getPlateConfiscatedViolationsByViolationStatusIdAndInspectionDate -- START"); List<VsdViolation> violations = null; try { // Calendar startDate = Calendar.getInstance(); // startDate.setTime(inspectionDate); // startDate.set(Calendar.HOUR_OF_DAY, 0); // startDate.set(Calendar.MINUTE, 0); // startDate.set(Calendar.SECOND, 0); // startDate.set(Calendar.MILLISECOND, 0); // // Calendar endDate = Calendar.getInstance(); // endDate.setTime(inspectionDate); // endDate.set(Calendar.HOUR_OF_DAY, 23); // endDate.set(Calendar.MINUTE, 59); // endDate.set(Calendar.SECOND, 59); // endDate.set(Calendar.MILLISECOND, 999); Session session = (Session) dsContext.getInternalContext(); violations = session.createCriteria(VsdViolation.class, "v") .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdSeverityLevel", "sl", Criteria.LEFT_JOIN, Restrictions.eq("sl.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("sl.severityLevelId", severityLevelId)) .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.between("i.inspectionTimestamp", startDate, endDate)) .add(Restrictions.eq("i.isPlateConfiscated", IDataService.BOOL_TRUE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdViolationStatus", "vs", Criteria.LEFT_JOIN, Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("vs.violationStatusId", violationStatusIds)) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); logger.info("getPlateConfiscatedViolationsByViolationStatusIdAndInspectionDate -- END"); return violations; } catch (Exception ex) { logger.error("An error occured in getPlateConfiscatedViolationsByViolationStatusIdAndInspectionDate()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * /*from w w w . j av a 2 s .co m*/ * get Violations with tests By TrafficFileNumber And ChassisNumber * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param trafficFileNumber * @param List<vehicleChassisNumber> * @return List<Violation> * @throws VSDDataAccessException */ public List<VsdViolation> getViolationsWithTestsByTrafficFileNumberAndChassisNumber( final DataServiceContext dsContext, boolean retrieveArabicData, String trafficFileNumber, List<String> vehicleChassisNumber, int maxResults) throws VSDDataAccessException { logger.info("getViolationsWithTestsByTrafficFileNumberAndChassisNumber -- START"); StringBuffer vehicleChassisNumberString = new StringBuffer(128); vehicleChassisNumberString.append("("); Iterator iterator = vehicleChassisNumber.iterator(); while (iterator.hasNext()) { String chassissNumber = (String) iterator.next(); vehicleChassisNumberString.append("'").append(chassissNumber.toLowerCase()).append("'"); if (iterator.hasNext()) vehicleChassisNumberString.append(", "); } vehicleChassisNumberString.append(")"); List<VsdViolation> violations; try { Session session = (Session) dsContext.getInternalContext(); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.property("violation.violationId"), "violationId"); projectionList.add(Projections.property("violation.reportedDate"), "reportedDate"); Criteria projectionCriteria = session.createCriteria(VsdViolation.class, "violation") .add(Restrictions.eq("violation.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violation.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.sqlRestriction( "lower ({alias}.VEHICLE_CHASSIS_NUMBER) IN " + vehicleChassisNumberString)) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("oi.trafficFileNumber", trafficFileNumber).ignoreCase()) .createCriteria("violation.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelDefectTests", "cdt", Criteria.LEFT_JOIN, Restrictions.eq("cdt.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cdt.vsdChannelTest", "ct", Criteria.LEFT_JOIN, Restrictions.eq("ct.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.isNotNull("ct.createdTimestamp")) .createCriteria("ct.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)) .createCriteria("ct.vsdTestType", "tt", Criteria.LEFT_JOIN, Restrictions.eq("tt.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelDefectFines", "cdf", Criteria.LEFT_JOIN, Restrictions.eq("cdf.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cdf.vsdVCatDefSevFine", "vcdsf", Criteria.LEFT_JOIN, Restrictions.eq("vcdsf.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vcdsf.vsdPartnerFine", "pf", Criteria.LEFT_JOIN, Restrictions.eq("pf.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("pf.vsdPartner", "part", Criteria.LEFT_JOIN, Restrictions.eq("part.isDeleted", IDataService.BOOL_FALSE)) .setProjection(Projections.distinct(projectionList)) .addOrder(Order.desc("violation.reportedDate")) .setResultTransformer(new AliasToBeanResultTransformer(VsdViolation.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 = resultSet.iterator(); ArrayList innerQueryList = new ArrayList<Long>(); while (iterator.hasNext()) { VsdViolation vsdViolation = (VsdViolation) iterator.next(); innerQueryList.add(vsdViolation.getViolationId()); } violations = session.createCriteria(VsdViolation.class, "violation") .add(Restrictions.eq("violation.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("violation.vsdInspections", "i", Criteria.LEFT_JOIN, Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN, Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.sqlRestriction( "lower ({alias}.VEHICLE_CHASSIS_NUMBER) IN " + vehicleChassisNumberString)) .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN, Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.eq("oi.trafficFileNumber", trafficFileNumber).ignoreCase()) .createCriteria("violation.vsdChannelDefects", "cd", Criteria.LEFT_JOIN, Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelDefectTests", "cdt", Criteria.LEFT_JOIN, Restrictions.eq("cdt.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cdt.vsdChannelTest", "ct", Criteria.LEFT_JOIN, Restrictions.eq("ct.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.isNotNull("ct.createdTimestamp")) .createCriteria("ct.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)) .createCriteria("ct.vsdTestType", "tt", Criteria.LEFT_JOIN, Restrictions.eq("tt.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cd.vsdChannelDefectFines", "cdf", Criteria.LEFT_JOIN, Restrictions.eq("cdf.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("cdf.vsdVCatDefSevFine", "vcdsf", Criteria.LEFT_JOIN, Restrictions.eq("vcdsf.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("vcdsf.vsdPartnerFine", "pf", Criteria.LEFT_JOIN, Restrictions.eq("pf.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("pf.vsdPartner", "part", Criteria.LEFT_JOIN, Restrictions.eq("part.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("violation.violationId", innerQueryList)) .addOrder(Order.desc("violation.reportedDate")) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list(); logger.debug("violations.size() : " + violations.size()); } catch (Exception ex) { logger.error("An error occured in getViolationsWithTestsByTrafficFileNumberAndChassisNumber()"); logger.error(ex); throw new VSDDataAccessException(ex.getMessage(), ex); } logger.info("getViolationsWithTestsByTrafficFileNumberAndChassisNumber -- END"); return violations; }
From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java
/** * //ww w.j a va2 s . com * Get a list of violations from the vehicle plate details, severity level and violations status ids provided * * @author Eldon Barrows * @param dsContext * @param retrieveArabicData * @param plateDetails * @param severityLevels * @param violationStatusId * @return Long * @throws VSDDataAccessException */ public Long getViolationsByVehiclePlateSeverityLevelsAndViolationStatuses(DataServiceContext dsContext, boolean retrieveArabicData, VehiclePlate plateDetails, List<Long> severityLevels, List<Long> violationStatusIds) throws VSDDataAccessException { logger.info("getViolationsByVehiclePlateSeverityLevelsAndViolationStatuses -- START"); try { Session session = (Session) dsContext.getInternalContext(); Criteria crit = session.createCriteria(VsdViolation.class, "v") .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE)) .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN, 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", plateDetails.getPlateCategory()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateCode", plateDetails.getPlateCode()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateSource", plateDetails.getPlateSource()).ignoreCase()) .add(Restrictions.eq("vi.vehiclePlateNumber", plateDetails.getPlateNumber()).ignoreCase()) .createCriteria("v.vsdSeverityLevel", "sl", Criteria.LEFT_JOIN, Restrictions.eq("sl.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("sl.severityLevel", severityLevels)) .createCriteria("v.vsdViolationStatus", "vs", Criteria.LEFT_JOIN, Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE)) .add(Restrictions.in("vs.violationStatusId", violationStatusIds)) .setProjection(Projections.countDistinct("v.violationId")); Long count = (Long) crit.uniqueResult(); logger.info("getViolationsByVehiclePlateSeverityLevelsAndViolationStatuses -- END"); return count; } catch (Exception ex) { logger.error("An error occured in getViolationsByVehiclePlateSeverityLevelsAndViolationStatuses()"); throw new VSDDataAccessException(ex.getMessage(), ex); } }