Example usage for org.hibernate.criterion ProjectionList add

List of usage examples for org.hibernate.criterion ProjectionList add

Introduction

In this page you can find the example usage for org.hibernate.criterion ProjectionList add.

Prototype

public ProjectionList add(Projection projection, String alias) 

Source Link

Document

Adds a projection to this list of projections after wrapping it with an alias

Usage

From source file:com.rta.vsd.data.service.impl.InspectionDataServiceImpl.java

/**
 * //from   w  w w  .  j a v a2s  .co  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

/**
 * /* ww  w.  j  a  v  a  2s . c  o  m*/
 * 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   ww  w .j a  va  2s. c  om
 * 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;
}

From source file:com.rta.vsd.data.service.impl.InspectionDataServiceImpl.java

/**
 * // w  w  w  .j  a v  a2s.  c  o m
 * get Inspections By TrafficFileNumber
 * Following three methods are associated.
 * getInspectionsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber)
 * getCountForInspectionsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber)
 * getInspectionsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber, maxResults, firstResult)
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param trafficFileNumber
 * @return List<VsdInspection>
 * @throws VSDDataAccessException
 */
public List<VsdInspection> getInspectionsByTrafficFileNumber(final DataServiceContext dsContext,
        boolean retrieveArabicData, String trafficFileNumber, int maxResults, int firstResult)
        throws VSDDataAccessException {
    logger.info("getInspectionsByTrafficFileNumber -- 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))
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("oi.trafficFileNumber", trafficFileNumber).ignoreCase())
                .createCriteria("i.vsdViolation", "vio", Criteria.LEFT_JOIN,
                        Restrictions.eq("vio.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdLocation", "l", Criteria.LEFT_JOIN,
                        Restrictions.eq("l.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("l.vsdLocation", "pl", Criteria.LEFT_JOIN,
                        Restrictions.eq("pl.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.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).setFirstResult(firstResult);
        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))
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("oi.trafficFileNumber", trafficFileNumber).ignoreCase())
                .createCriteria("i.vsdViolation", "vio", Criteria.LEFT_JOIN,
                        Restrictions.eq("vio.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdLocation", "l", Criteria.LEFT_JOIN,
                        Restrictions.eq("l.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("l.vsdLocation", "pl", Criteria.LEFT_JOIN,
                        Restrictions.eq("pl.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.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 getInspectionsByTrafficFileNumber()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
    logger.info("getInspectionsByTrafficFileNumber -- END");
    return inspections;
}

From source file:com.rta.vsd.data.service.impl.VehicleDataServiceImpl.java

/**
 * search vehicles./*from  www  .j  a  v  a 2s  .  co  m*/
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehicleSearchCriteria
 * @param paginationValues
 * @return List<VsdVehicle>
 * @throws VSDDataAccessException
 */
public List<VsdVehicle> searchVehicle(DataServiceContext dsContext, boolean retrieveArabicData,
        VehicleSearchCriteria vehicleSearchCriteria, PaginationParam paginationValues)
        throws VSDDataAccessException {
    logger.info("searchVehicle -- START");
    List<VsdVehicle> vehicles = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("v.vehicleId"), "vehicleId");
        projectionList.add(Projections.property("vo.ownerName"), "chassisNumber");
        projectionList.add(Projections.property("vo.ownerNameA"), "chassisNumber");
        projectionList.add(Projections.property("v.vehiclePlateNumber"), "chassisNumber");
        Criteria criteria = session.createCriteria(VsdVehicle.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehPlateCatCode", "vpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("vpcc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vpcc.vsdVehPlateCatCode", "vpcc2", Criteria.LEFT_JOIN,
                        Restrictions.eq("vpcc2.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleOwner", "vo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vo.isDeleted", IDataService.BOOL_FALSE));

        /*
         * if (vehicleSearchCriteria.getPlateNumber() != null && !vehicleSearchCriteria.getPlateNumber().equals(""))
           criteria.add(Restrictions.eq("v.vehiclePlateNumber", vehicleSearchCriteria.getPlateNumber()).ignoreCase());
        if (vehicleSearchCriteria.getPlateCode() != null && !vehicleSearchCriteria.getPlateCode().equals(""))
           criteria.add(Restrictions.eq("vpcc.categoryName", vehicleSearchCriteria.getPlateCode()).ignoreCase());
        if (vehicleSearchCriteria.getPlateCategory() != null && !vehicleSearchCriteria.getPlateCategory().equals(""))
           criteria.add(Restrictions.eq("vpcc2.categoryName", vehicleSearchCriteria.getPlateCategory()).ignoreCase());
        if (vehicleSearchCriteria.getOperatorName() != null && !vehicleSearchCriteria.getOperatorName().equals(""))
           criteria.add(Restrictions.eq("vo.ownerName", vehicleSearchCriteria.getOperatorName()).ignoreCase());
        if (vehicleSearchCriteria.getOperatorNameA() != null && !vehicleSearchCriteria.getOperatorNameA().equals(""))
           criteria.add(Restrictions.eq("vo.ownerNameA", vehicleSearchCriteria.getOperatorNameA()).ignoreCase());
        */
        if (vehicleSearchCriteria.getEmirateCode() != null
                && !vehicleSearchCriteria.getEmirateCode().equals(""))
            criteria.add(
                    Restrictions.eq("v.vehicleCountry", vehicleSearchCriteria.getEmirateCode()).ignoreCase());

        if (vehicleSearchCriteria.getPlateNumber() != null
                && !vehicleSearchCriteria.getPlateNumber().equals(""))
            criteria.add(Restrictions.eq("v.vehiclePlateNumber", vehicleSearchCriteria.getPlateNumber())
                    .ignoreCase());

        if (vehicleSearchCriteria.getPlateCode() != null && !vehicleSearchCriteria.getPlateCode().equals(""))
            criteria.add(Restrictions.eq("vpcc.vehPlateCatCodeId", vehicleSearchCriteria.getPlateCode()));

        if (vehicleSearchCriteria.getPlateCategory() != null
                && !vehicleSearchCriteria.getPlateCategory().equals(""))
            criteria.add(Restrictions.eq("vpcc2.vehPlateCatCodeId", vehicleSearchCriteria.getPlateCategory()));

        if (vehicleSearchCriteria.getOperatorName() != null
                && !vehicleSearchCriteria.getOperatorName().equals(""))
            criteria.add(Restrictions.like("vo.ownerName", "%" + vehicleSearchCriteria.getOperatorName() + "%")
                    .ignoreCase());

        if (vehicleSearchCriteria.getOperatorNameA() != null
                && !vehicleSearchCriteria.getOperatorNameA().equals(""))
            criteria.add(Restrictions
                    .like("vo.ownerNameA", "%" + vehicleSearchCriteria.getOperatorNameA() + "%").ignoreCase());

        criteria.setProjection(Projections.distinct(projectionList));
        criteria.setResultTransformer(new AliasToBeanResultTransformer(VsdVehicle.class));
        criteria.setFirstResult(paginationValues.getFirstResult().intValue());
        criteria.setMaxResults(paginationValues.getFetchedSize().intValue());
        if (paginationValues.getPageLocale().equalsIgnoreCase(Constant.LOCALE_ENGLISH)) {
            criteria.addOrder(Order.asc("vo.ownerName").ignoreCase());
            criteria.addOrder(Order.asc("v.vehiclePlateNumber").ignoreCase());
        } else {
            criteria.addOrder(Order.asc("vo.ownerNameA").ignoreCase());
            criteria.addOrder(Order.asc("v.vehiclePlateNumber").ignoreCase());
        }

        List list = criteria.list();
        logger.debug("list.size() : " + list.size());
        if (list.size() == 0)
            return new ArrayList();
        Iterator iterator = list.iterator();
        ArrayList innerQueryList = new ArrayList<Long>();
        while (iterator.hasNext()) {
            VsdVehicle vehicle = (VsdVehicle) iterator.next();
            innerQueryList.add(vehicle.getVehicleId());
        }
        Criteria main = session.createCriteria(VsdVehicle.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehPlateCatCode", "vpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("vpcc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vpcc.vsdVehPlateCatCode", "vpcc2", Criteria.LEFT_JOIN,
                        Restrictions.eq("vpcc2.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleOwner", "vo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vo.isDeleted", IDataService.BOOL_FALSE))
                .add(Property.forName("v.vehicleId").in(innerQueryList));

        if (vehicleSearchCriteria.getEmirateCode() != null
                && !vehicleSearchCriteria.getEmirateCode().equals(""))
            main.add(Restrictions.eq("v.vehicleCountry", vehicleSearchCriteria.getEmirateCode()).ignoreCase());

        if (vehicleSearchCriteria.getPlateNumber() != null
                && !vehicleSearchCriteria.getPlateNumber().equals(""))
            main.add(Restrictions.eq("v.vehiclePlateNumber", vehicleSearchCriteria.getPlateNumber())
                    .ignoreCase());

        if (vehicleSearchCriteria.getPlateCode() != null && !vehicleSearchCriteria.getPlateCode().equals(""))
            main.add(Restrictions.eq("vpcc.vehPlateCatCodeId", vehicleSearchCriteria.getPlateCode()));

        if (vehicleSearchCriteria.getPlateCategory() != null
                && !vehicleSearchCriteria.getPlateCategory().equals(""))
            main.add(Restrictions.eq("vpcc2.vehPlateCatCodeId", vehicleSearchCriteria.getPlateCategory()));

        if (vehicleSearchCriteria.getOperatorName() != null
                && !vehicleSearchCriteria.getOperatorName().equals(""))
            main.add(Restrictions.like("vo.ownerName", "%" + vehicleSearchCriteria.getOperatorName() + "%")
                    .ignoreCase());

        if (vehicleSearchCriteria.getOperatorNameA() != null
                && !vehicleSearchCriteria.getOperatorNameA().equals(""))
            main.add(Restrictions.like("vo.ownerNameA", "%" + vehicleSearchCriteria.getOperatorNameA() + "%")
                    .ignoreCase());

        if (paginationValues.getPageLocale().equalsIgnoreCase(Constant.LOCALE_ENGLISH)) {
            main.addOrder(Order.asc("vo.ownerName").ignoreCase());
            main.addOrder(Order.asc("v.vehiclePlateNumber").ignoreCase());
        } else {
            main.addOrder(Order.asc("vo.ownerNameA").ignoreCase());
            main.addOrder(Order.asc("v.vehiclePlateNumber").ignoreCase());
        }

        vehicles = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.info("searchVehicle -- END");
        return vehicles;
    } catch (Exception ex) {
        logger.error("An error occured in searchVehicle()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

From source file:com.rta.vsd.data.service.impl.VehicleDataServiceImpl.java

public List<VsdVehicle> getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber(
        DataServiceContext dsContext, boolean retrieveArabicData, String traficFileNo,
        PaginationParam paginationValues) throws VSDDataAccessException {
    logger.info("getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber -- START");
    List<VsdVehicle> vehicles = null;
    try {// www  . ja v  a2 s.  com
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("v.vehicleId"), "vehicleId");
        Criteria crit = session.createCriteria(VsdVehicle.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleOwner", "vo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vo.trafficFileNumber", traficFileNo).ignoreCase())
                .createCriteria("v.vsdRRProfilings", "rrp", Criteria.LEFT_JOIN,
                        Restrictions.eq("rrp.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("rrp.vsdRiskRating", "rr", Criteria.LEFT_JOIN,
                        Restrictions.eq("rr.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleManufacturers", "m", Criteria.LEFT_JOIN,
                        Restrictions.eq("m.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehPlateCatCode", "vpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("vpcc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vpcc.vsdVehPlateCatCode", "pvpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("pvpcc.isDeleted", IDataService.BOOL_FALSE))
                .addOrder(Order.desc("v.vehicleId")).setProjection(Projections.distinct(projectionList));
        crit.setResultTransformer(new AliasToBeanResultTransformer(VsdVehicle.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()) {
            VsdVehicle vehicle = (VsdVehicle) iterator.next();
            innerQueryList.add(vehicle.getVehicleId());
        }
        Criteria main = session.createCriteria(VsdVehicle.class, "v")
                .add(Property.forName("v.vehicleId").in(innerQueryList))
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleOwner", "vo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vo.trafficFileNumber", traficFileNo).ignoreCase())
                .createCriteria("v.vsdRRProfilings", "rrp", Criteria.LEFT_JOIN,
                        Restrictions.eq("rrp.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("rrp.vsdRiskRating", "rr", Criteria.LEFT_JOIN,
                        Restrictions.eq("rr.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleManufacturers", "m", Criteria.LEFT_JOIN,
                        Restrictions.eq("m.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehPlateCatCode", "vpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("vpcc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vpcc.vsdVehPlateCatCode", "pvpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("pvpcc.isDeleted", IDataService.BOOL_FALSE))
                .addOrder(Order.desc("v.vehicleId"));
        vehicles = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.info("getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber -- END");
        return vehicles;
    } catch (Exception ex) {
        logger.error(
                "An error occured in getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

From source file:com.rta.vsd.data.service.impl.VehicleDataServiceImpl.java

/**
 * /* w ww .jav a2 s. co  m*/
 * Gets a list of vehicles having an owner with the provided trade license number. The manufacturer(VsdVehicleManufaceturer), risk rating (VsdRRProfiling,VsdRiskRating) and plate category code(VsdVehPlateCatCode) details will also be populated
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param tradeLicenseNumber
 * @param paginationValues
 * @return List<VsdVehicle>
 * @throws VSDDataAccessException
 */
public List<VsdVehicle> getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber(
        DataServiceContext dsContext, boolean retrieveArabicData, String tradeLicenseNumber,
        PaginationParam paginationValues) throws VSDDataAccessException {
    logger.info("getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber -- START");
    List<VsdVehicle> vehicles = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("v.vehicleId"), "vehicleId");
        Criteria crit = session.createCriteria(VsdVehicle.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleOwner", "vo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vo.tradeLicenseNumber", tradeLicenseNumber).ignoreCase())
                .createCriteria("v.vsdRRProfilings", "rrp", Criteria.LEFT_JOIN,
                        Restrictions.eq("rrp.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("rrp.vsdRiskRating", "rr", Criteria.LEFT_JOIN,
                        Restrictions.eq("rr.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleManufacturers", "m", Criteria.LEFT_JOIN,
                        Restrictions.eq("m.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehPlateCatCode", "vpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("vpcc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vpcc.vsdVehPlateCatCode", "pvpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("pvpcc.isDeleted", IDataService.BOOL_FALSE))
                .addOrder(Order.desc("v.vehicleId")).setProjection(Projections.distinct(projectionList));
        crit.setResultTransformer(new AliasToBeanResultTransformer(VsdVehicle.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()) {
            VsdVehicle vehicle = (VsdVehicle) iterator.next();
            innerQueryList.add(vehicle.getVehicleId());
        }
        Criteria main = session.createCriteria(VsdVehicle.class, "v")
                .add(Property.forName("v.vehicleId").in(innerQueryList))
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleOwner", "vo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vo.tradeLicenseNumber", tradeLicenseNumber).ignoreCase())
                .createCriteria("v.vsdRRProfilings", "rrp", Criteria.LEFT_JOIN,
                        Restrictions.eq("rrp.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("rrp.vsdRiskRating", "rr", Criteria.LEFT_JOIN,
                        Restrictions.eq("rr.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehicleManufacturers", "m", Criteria.LEFT_JOIN,
                        Restrictions.eq("m.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdVehPlateCatCode", "vpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("vpcc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vpcc.vsdVehPlateCatCode", "pvpcc", Criteria.LEFT_JOIN,
                        Restrictions.eq("pvpcc.isDeleted", IDataService.BOOL_FALSE))
                .addOrder(Order.desc("v.vehicleId"));
        vehicles = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.info("getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber -- END");
        return vehicles;
    } catch (Exception ex) {
        logger.error(
                "An error occured in getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

From source file:com.rta.vsd.data.service.impl.VehicleDataServiceImpl.java

/**
 * //from  w  w w . ja va 2s.co  m
 * Gets the plate details for the vehicle provided
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehicle
 * @return VehiclePlate
 * @throws VSDDataAccessException
 */
public VehiclePlate getVehiclePlateByVehicle(DataServiceContext dsContext, boolean retrieveArabicData,
        VsdVehicle vehicle) throws VSDDataAccessException {
    logger.info("getVehiclePlateByVehicle -- START");
    VehiclePlate vehiclePlate = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("v.vehiclePlateNumber"), "plateNumber");
        projectionList.add(Projections.property("cat.categoryName"), "plateCategory");
        projectionList.add(Projections.property("code.categoryName"), "plateCode");
        projectionList.add(Projections.property("country.countryCode"), "plateSource");
        vehiclePlate = (VehiclePlate) session.createCriteria(VsdVehicle.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("v.vehicleId", vehicle.getVehicleId()))
                .createCriteria("v.vsdVehPlateCatCode", "code", Criteria.LEFT_JOIN,
                        Restrictions.eq("code.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("code.vsdVehPlateCatCode", "cat", Criteria.LEFT_JOIN,
                        Restrictions.eq("cat.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cat.vsdCountry", "country", Criteria.LEFT_JOIN,
                        Restrictions.eq("country.isDeleted", IDataService.BOOL_FALSE))
                .setProjection(projectionList)
                .setResultTransformer(new AliasToBeanResultTransformer(VehiclePlate.class)).uniqueResult();
        logger.info("getVehiclePlateByVehicle -- END");
        return vehiclePlate;
    } catch (Exception ex) {
        logger.error("An error occured in getVehiclePlateByVehicle()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java

/**
 * // ww  w.  j a  v  a 2 s . c o m
 * Gets a list of all the violations based on the plate details provided 
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehiclePlateDetails
 * @param paginationValues
 * @return List<VsdViolation>
 * @throws VSDDataAccessException
 */
public List<VsdViolation> getViolationsByPlateDetails(final DataServiceContext dsContext,
        boolean retrieveArabicData, VehiclePlate vehiclePlateDetails, PaginationParam paginationValues)
        throws VSDDataAccessException {
    logger.info("getViolationsByPlateDetails -- START");
    List<VsdViolation> violations = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("violaton.violationId"), "violationId");
        projectionList.add(Projections.property("violaton.reportedDate"), "reportedDate");
        Criteria crit = session.createCriteria(VsdViolation.class, "violaton")
                .add(Restrictions.eq("violaton.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vsdInspections", "inspections", Criteria.LEFT_JOIN,
                        Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("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())
                .createCriteria("violaton.vsdSeverityLevel", "vsl", Criteria.LEFT_JOIN,
                        Restrictions.eq("vsl.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violaton.vsdViolationStatus", "vs", Criteria.LEFT_JOIN,
                        Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE))
                .addOrder(Order.desc("violaton.reportedDate"))
                .setProjection(Projections.distinct(projectionList));
        crit.setResultTransformer(new AliasToBeanResultTransformer(VsdViolation.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()) {
            VsdViolation violation = (VsdViolation) iterator.next();
            innerQueryList.add(violation.getViolationId());
        }
        Criteria main = session.createCriteria(VsdViolation.class, "violaton")
                .add(Property.forName("violaton.violationId").in(innerQueryList))
                .add(Restrictions.eq("violaton.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vsdInspections", "inspections", Criteria.LEFT_JOIN,
                        Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vehicleInfo.vehiclePlateCategory",
                        vehiclePlateDetails.getPlateCategory()))
                .add(Restrictions.eq("vehicleInfo.vehiclePlateCode", vehiclePlateDetails.getPlateCode()))
                .add(Restrictions.eq("vehicleInfo.vehiclePlateSource", vehiclePlateDetails.getPlateSource()))
                .add(Restrictions.eq("vehicleInfo.vehiclePlateNumber", vehiclePlateDetails.getPlateNumber()))
                .createCriteria("violaton.vsdSeverityLevel", "vsl", Criteria.LEFT_JOIN,
                        Restrictions.eq("vsl.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violaton.vsdViolationStatus", "vs", Criteria.LEFT_JOIN,
                        Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE))
                .addOrder(Order.desc("violaton.reportedDate"));
        violations = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.info("getViolationsByPlateDetails -- END");
        return violations;
    } catch (Exception ex) {
        logger.error("An error occured in getViolationsByPlateDetails()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

From source file:com.rta.vsd.data.service.impl.ViolationDataServiceImpl.java

/**
 * /*from w  w w  .  j a  va2s. c  o  m*/
 * Gets a list of all violations and its associated inspections
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param paginationValues
 * @return List<VsdViolation>
 * @throws VSDException
 */
public List<VsdViolation> getViolationsWithInspections(final DataServiceContext dsContext,
        boolean retrieveArabicData, PaginationParam paginationValues) throws VSDDataAccessException {
    logger.info("getViolationsWithInspections -- START");
    List<VsdViolation> violations = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("v.violationId"), "violationId");

        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("v.vsdViolationStatus", "vs", Criteria.LEFT_JOIN,
                        Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdSeverityLevel", "vSev", Criteria.LEFT_JOIN,
                        Restrictions.eq("vSev.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN,
                        Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdLocation", "l", Criteria.LEFT_JOIN,
                        Restrictions.eq("l.isDeleted", IDataService.BOOL_FALSE));

        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());
        }
        if (paginationValues.getOrderBy() != null && !paginationValues.getOrderBy().equals("")) {
            if (paginationValues.getSortOrder() != null && !paginationValues.getSortOrder().equals("")) {
                String columnAttrib = "";
                if (paginationValues.getOrderBy().equalsIgnoreCase(
                        SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.VIOLATION_ID.toString())) {
                    columnAttrib = "v." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.VIOLATION_ID;
                    projectionList.add(Projections.property(columnAttrib), "violationTicketCode");
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY.toString())) {
                    columnAttrib = "vSev." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY;
                    projectionList.add(Projections.property(columnAttrib), "violationTicketCode");
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.STATUS.toString())) {
                    columnAttrib = "vs." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.STATUS;
                    projectionList.add(Projections.property(columnAttrib), "violationTicketCode");
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.DATE_TIME.toString())) {
                    columnAttrib = "i." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.DATE_TIME;
                    projectionList.add(Projections.property(columnAttrib), "ownerSuspensionDate");
                } else if (paginationValues.getOrderBy().equalsIgnoreCase(
                        SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.PLATE_DETAIL.toString())) {
                    //columnAttrib = "vSev." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY;
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY_A.toString())) {
                    columnAttrib = "vSev." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY_A;
                    projectionList.add(Projections.property(columnAttrib), "violationTicketCode");
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.STATUS_A.toString())) {
                    columnAttrib = "vs." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.STATUS_A;
                    projectionList.add(Projections.property(columnAttrib), "violationTicketCode");
                } else {
                    columnAttrib = "v.violationId";
                    projectionList.add(Projections.property(columnAttrib), "violationId");
                }

                if (paginationValues.getSortOrder().equalsIgnoreCase(IDataService.Sort.DESCENDING.toString())) {
                    if (paginationValues.getOrderBy().equalsIgnoreCase(
                            SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.PLATE_DETAIL.toString())) {
                        crit.addOrder(Order.desc("vi.vehiclePlateNumber").ignoreCase());
                        crit.addOrder(Order.desc("vi.vehiclePlateCategory").ignoreCase());
                        crit.addOrder(Order.desc("vi.vehiclePlateCode").ignoreCase());
                        crit.addOrder(Order.desc("vi.vehiclePlateSource").ignoreCase());
                        projectionList.add(Projections.property("vi.vehiclePlateNumber"),
                                "violationTicketCode");
                        projectionList.add(Projections.property("vi.vehiclePlateCategory"),
                                "violationTicketCode");
                        projectionList.add(Projections.property("vi.vehiclePlateCode"), "violationTicketCode");
                        projectionList.add(Projections.property("vi.vehiclePlateSource"),
                                "violationTicketCode");
                    } else
                        crit.addOrder(Order.desc(columnAttrib).ignoreCase());
                } else {
                    if (paginationValues.getOrderBy().equalsIgnoreCase(
                            SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.PLATE_DETAIL.toString())) {
                        crit.addOrder(Order.asc("vi.vehiclePlateNumber").ignoreCase());
                        crit.addOrder(Order.asc("vi.vehiclePlateCategory").ignoreCase());
                        crit.addOrder(Order.asc("vi.vehiclePlateCode").ignoreCase());
                        crit.addOrder(Order.asc("vi.vehiclePlateSource").ignoreCase());
                        projectionList.add(Projections.property("vi.vehiclePlateNumber"),
                                "violationTicketCode");
                        projectionList.add(Projections.property("vi.vehiclePlateCategory"),
                                "violationTicketCode");
                        projectionList.add(Projections.property("vi.vehiclePlateCode"), "violationTicketCode");
                        projectionList.add(Projections.property("vi.vehiclePlateSource"),
                                "violationTicketCode");
                    } else
                        crit.addOrder(Order.asc(columnAttrib).ignoreCase());
                }
            }
        } else {
            crit.addOrder(Order.desc("v.violationId").ignoreCase());

        }
        List list = crit.setProjection(Projections.distinct(projectionList))
                .setResultTransformer(new AliasToBeanResultTransformer(VsdViolation.class)).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()) {
            VsdViolation violation = (VsdViolation) iterator.next();
            innerQueryList.add(violation.getViolationId());
        }
        Criteria main = session.createCriteria(VsdViolation.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .add(Property.forName("v.violationId").in(innerQueryList))
                .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN,
                        Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdViolationStatus", "vs", Criteria.LEFT_JOIN,
                        Restrictions.eq("vs.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdSeverityLevel", "vSev", Criteria.LEFT_JOIN,
                        Restrictions.eq("vSev.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN,
                        Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdLocation", "l", Criteria.LEFT_JOIN,
                        Restrictions.eq("l.isDeleted", IDataService.BOOL_FALSE));

        if (paginationValues.getOrderBy() != null && !paginationValues.getOrderBy().equals("")) {
            if (paginationValues.getSortOrder() != null && !paginationValues.getSortOrder().equals("")) {
                String columnAttrib = "";
                if (paginationValues.getOrderBy().equalsIgnoreCase(
                        SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.VIOLATION_ID.toString())) {
                    columnAttrib = "v." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.VIOLATION_ID;
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY.toString())) {
                    columnAttrib = "vSev." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY;
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.STATUS.toString())) {
                    columnAttrib = "vs." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.STATUS;
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.DATE_TIME.toString())) {
                    columnAttrib = "i." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.DATE_TIME;
                } else if (paginationValues.getOrderBy().equalsIgnoreCase(
                        SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.PLATE_DETAIL.toString())) {
                    //columnAttrib = "vSev." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY;
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY_A.toString())) {
                    columnAttrib = "vSev." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.SEVERITY_A;
                } else if (paginationValues.getOrderBy()
                        .equalsIgnoreCase(SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.STATUS_A.toString())) {
                    columnAttrib = "vs." + SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.STATUS_A;
                } else {
                    columnAttrib = "v.violationId";
                }

                if (paginationValues.getSortOrder().equalsIgnoreCase(IDataService.Sort.DESCENDING.toString())) {
                    if (paginationValues.getOrderBy().equalsIgnoreCase(
                            SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.PLATE_DETAIL.toString())) {
                        main.addOrder(Order.desc("vi.vehiclePlateNumber").ignoreCase());
                        main.addOrder(Order.desc("vi.vehiclePlateCategory").ignoreCase());
                        main.addOrder(Order.desc("vi.vehiclePlateCode").ignoreCase());
                        main.addOrder(Order.desc("vi.vehiclePlateSource").ignoreCase());
                    } else
                        main.addOrder(Order.desc(columnAttrib).ignoreCase());
                } else {
                    if (paginationValues.getOrderBy().equalsIgnoreCase(
                            SORT_COLUMN_GET_VIOLATIONS_WITH_INSPECTIONS.PLATE_DETAIL.toString())) {
                        main.addOrder(Order.asc("vi.vehiclePlateNumber").ignoreCase());
                        main.addOrder(Order.asc("vi.vehiclePlateCategory").ignoreCase());
                        main.addOrder(Order.asc("vi.vehiclePlateCode").ignoreCase());
                        main.addOrder(Order.asc("vi.vehiclePlateSource").ignoreCase());
                    } else
                        main.addOrder(Order.asc(columnAttrib).ignoreCase());
                }
            }

        } else {
            main.addOrder(Order.desc("v.violationId").ignoreCase());
        }
        violations = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.info("getViolationsWithInspections -- END");
        return violations;
    } catch (Exception ex) {
        logger.error("An error occured in getViolationsWithInspections()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}