Example usage for org.hibernate.criterion Projections projectionList

List of usage examples for org.hibernate.criterion Projections projectionList

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections projectionList.

Prototype

public static ProjectionList projectionList() 

Source Link

Document

Create a new projection list.

Usage

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

/**
 * //from  www  .  ja v  a2 s .  c om
 * Gets a list of inspection from the plate details specified
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehiclePlateDetails
 * @param paginationValues
 * @return List<VsdInspection>
 * @throws VSDDataAccessException
 */
public List<VsdInspection> getInspectionsByPlateDetails(final DataServiceContext dsContext,
        boolean retrieveArabicData, VehiclePlate vehiclePlateDetails, PaginationParam paginationValues)
        throws VSDDataAccessException {
    logger.info("getInspectionsByPlateDetails -- START");
    List<VsdInspection> inspections = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("inspections.inspectionId"), "inspectionId");
        Criteria crit = session.createCriteria(VsdInspection.class, "inspections")
                .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN,
                        Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vehicleInfo.vehiclePlateCategory", vehiclePlateDetails.getPlateCategory())
                        .ignoreCase())
                .add(Restrictions.eq("vehicleInfo.vehiclePlateCode", vehiclePlateDetails.getPlateCode())
                        .ignoreCase())
                .add(Restrictions.eq("vehicleInfo.vehiclePlateSource", vehiclePlateDetails.getPlateSource())
                        .ignoreCase())
                .add(Restrictions.eq("vehicleInfo.vehiclePlateNumber", vehiclePlateDetails.getPlateNumber())
                        .ignoreCase())
                .addOrder(Order.desc("inspections.inspectionId"))
                .setProjection(Projections.distinct(projectionList));
        crit.setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class));
        if (paginationValues.getFirstResult() != null && paginationValues.getFirstResult().longValue() != -1) {
            crit.setFirstResult(paginationValues.getFirstResult().intValue());
        }
        if (paginationValues.getFetchedSize() != null && paginationValues.getFetchedSize().longValue() != -1) {
            crit.setMaxResults(paginationValues.getFetchedSize().intValue());
        }
        List list = crit.list();
        logger.debug("list.size() : " + list.size());
        Set resultSet = new HashSet(list);
        logger.debug("resultSet.size() : " + resultSet.size());
        if (resultSet.size() == 0)
            return new ArrayList();
        Iterator iterator = resultSet.iterator();
        ArrayList innerQueryList = new ArrayList<Long>();
        while (iterator.hasNext()) {
            VsdInspection inspection = (VsdInspection) iterator.next();
            innerQueryList.add(inspection.getInspectionId());
        }
        Criteria main = session.createCriteria(VsdInspection.class, "inspections")
                .add(Property.forName("inspections.inspectionId").in(innerQueryList))
                .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN,
                        Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vehicleInfo.vehiclePlateCategory", vehiclePlateDetails.getPlateCategory())
                        .ignoreCase())
                .add(Restrictions.eq("vehicleInfo.vehiclePlateCode", vehiclePlateDetails.getPlateCode())
                        .ignoreCase())
                .add(Restrictions.eq("vehicleInfo.vehiclePlateSource", vehiclePlateDetails.getPlateSource())
                        .ignoreCase())
                .add(Restrictions.eq("vehicleInfo.vehiclePlateNumber", vehiclePlateDetails.getPlateNumber())
                        .ignoreCase())
                .addOrder(Order.desc("inspections.inspectionId"));
        inspections = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.info("getInspectionsByPlateDetails -- END");
        return inspections;
    } catch (Exception ex) {
        logger.error("An error occured in getInspectionsByPlateDetails()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }

}

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

/**
 * /*from  w w w  .  j ava2s.  c o  m*/
 * Gets all the inspections for vehicles owned by the owner with the specified trade license number
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param traficFileNo
 * @param paginationParam
 * @return List<VsdInspection>
 * @throws VSDDataAccessException
 */
public List<VsdInspection> getInspectionsByTraficFileNumber(final DataServiceContext dsContext,
        boolean retrieveArabicData, String traficFileNo, PaginationParam param) throws VSDDataAccessException {
    logger.info("getInspectionsByTraficFileNumber -- START");
    List<VsdInspection> inspections;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("inspections.inspectionId"), "inspectionId");
        projectionList.add(Projections.property("inspections.createdTimestamp"), "createdTimestamp");
        inspections = session.createCriteria(VsdInspection.class, "inspections")
                .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN,
                        Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vehicleInfo.vsdOwnerInfos", "ownerInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("ownerInfo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("ownerInfo.trafficFileNumber", traficFileNo).ignoreCase())
                .addOrder(Order.desc("inspections.createdTimestamp"))
                .setProjection(Projections.distinct(projectionList))
                .setFirstResult(param.getFirstResult().intValue())
                .setMaxResults(param.getFetchedSize().intValue())
                .setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class)).list();
        if (inspections.size() == 0)
            return new ArrayList();
        Iterator iterator = inspections.iterator();
        ArrayList innerQueryList = new ArrayList<Long>();
        while (iterator.hasNext()) {
            VsdInspection inspection = (VsdInspection) iterator.next();
            innerQueryList.add(inspection.getInspectionId());
        }
        inspections = session.createCriteria(VsdInspection.class, "inspections")
                .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN,
                        Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vehicleInfo.vsdOwnerInfos", "ownerInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("ownerInfo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("ownerInfo.trafficFileNumber", traficFileNo).ignoreCase())
                .add(Restrictions.in("inspections.inspectionId", innerQueryList))
                .addOrder(Order.desc("inspections.createdTimestamp")).list();
    } catch (Exception ex) {
        logger.error("An error occured in getInspectionsByTraficFileNumber()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
    logger.info("getInspectionsByTraficFileNumber -- END");
    return inspections;
}

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

/**
 * /* w w w . j  ava 2 s.  c o  m*/
 * Gets all the inspections for vehicles owned by the owner with the specified trade license number
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param tradeLicenseNumber
 * @param paginationValues
 * @return List<VsdInspection>
 * @throws VSDDataAccessException
 */
public List<VsdInspection> getInspectionsByTradeLicenseNumber(final DataServiceContext dsContext,
        boolean retrieveArabicData, String tradeLicenseNumber, PaginationParam paginationValues)
        throws VSDDataAccessException {
    logger.info("getInspectionsByTradeLicenseNumber -- START");
    List<VsdInspection> inspections = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("inspections.inspectionId"), "inspectionId");

        Criteria crit = session.createCriteria(VsdInspection.class, "inspections")
                .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN,
                        Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vehicleInfo.vsdOwnerInfos", "ownerInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("ownerInfo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("ownerInfo.tradeLicenseNumber", tradeLicenseNumber).ignoreCase())
                .addOrder(Order.desc("inspections.inspectionId"));
        crit.setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class));
        if (paginationValues.getFirstResult() != null && paginationValues.getFirstResult().longValue() != -1) {
            crit.setFirstResult(paginationValues.getFirstResult().intValue());
        }
        if (paginationValues.getFetchedSize() != null && paginationValues.getFetchedSize().longValue() != -1) {
            crit.setMaxResults(paginationValues.getFetchedSize().intValue());
        }
        List list = crit.list();
        logger.debug("list.size() : " + list.size());
        Set resultSet = new HashSet(list);
        logger.debug("resultSet.size() : " + resultSet.size());
        if (resultSet.size() == 0)
            return new ArrayList();
        Iterator iterator = resultSet.iterator();
        ArrayList innerQueryList = new ArrayList<Long>();
        while (iterator.hasNext()) {
            VsdInspection inspection = (VsdInspection) iterator.next();
            innerQueryList.add(inspection.getInspectionId());
        }
        Criteria main = session.createCriteria(VsdInspection.class, "inspections")
                .add(Property.forName("inspections.inspectionId").in(innerQueryList))
                .add(Restrictions.eq("inspections.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdLocation", "loc", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("loc.vsdLocation", "area", Criteria.LEFT_JOIN,
                        Restrictions.eq("area.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("inspections.vsdVehicleInfo", "vehicleInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("vehicleInfo.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vehicleInfo.vsdOwnerInfos", "ownerInfo", Criteria.LEFT_JOIN,
                        Restrictions.eq("ownerInfo.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("ownerInfo.tradeLicenseNumber", tradeLicenseNumber).ignoreCase())
                .addOrder(Order.desc("inspections.inspectionId"));
        inspections = main.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.info("getInspectionsByTradeLicenseNumber -- END");
        return inspections;
    } catch (Exception ex) {
        logger.error("An error occured in getInspectionsByTradeLicenseNumber()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

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

/**
 * /* w ww . j  ava2 s. c  o  m*/
 * get Inspections By ChassisNumber
 * one overloaded method is associated method
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehicleChassisNumber
 * @return List<VsdInspection>
 * @throws VSDDataAccessException
 */
public List<VsdInspection> getInspectionsByChassisNumber(final DataServiceContext dsContext,
        boolean retrieveArabicData, String vehicleChassisNumber, int maxResults) throws VSDDataAccessException {
    logger.info("getInspectionsByChassisNumber -- START");
    List<VsdInspection> inspections;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("i.inspectionId"), "inspectionId");
        projectionList.add(Projections.property("i.inspectionTimestamp"), "inspectionTimestamp");

        Criteria projectionCriteria = session.createCriteria(VsdInspection.class, "i")
                .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vi.vehicleChassisNumber", vehicleChassisNumber).ignoreCase())
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN,
                        Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN,
                        Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN,
                        Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN,
                        Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN,
                        Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE))
                .setProjection(Projections.projectionList().add(Projections.property("i.inspectionId")))
                .setProjection(Projections.distinct(projectionList))
                .addOrder(Order.desc("i.inspectionTimestamp"))
                .setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class))
                .setMaxResults(maxResults);
        List list = projectionCriteria.list();
        logger.debug("list.size() : " + list.size());
        Set resultSet = new HashSet(list);
        logger.debug("resultSet.size() : " + resultSet.size());
        if (resultSet.size() == 0)
            return new ArrayList();
        Iterator iterator = resultSet.iterator();
        ArrayList innerQueryList = new ArrayList<Long>();
        while (iterator.hasNext()) {
            VsdInspection vsdInspection = (VsdInspection) iterator.next();
            innerQueryList.add(vsdInspection.getInspectionId());
        }
        inspections = session.createCriteria(VsdInspection.class, "i")
                .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vi.vehicleChassisNumber", vehicleChassisNumber).ignoreCase())
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN,
                        Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN,
                        Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN,
                        Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN,
                        Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN,
                        Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE))
                .addOrder(Order.desc("i.inspectionTimestamp"))
                .add(Property.forName("i.inspectionId").in(innerQueryList))
                .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.debug("inspections.size() : " + inspections.size());
    } catch (Exception ex) {
        logger.error("An error occured in getInspectionsByChassisNumber()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
    logger.info("getInspectionsByChassisNumber -- END");
    return inspections;
}

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

/**
 * //from w  w w .j a v 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 w ww .ja v  a 2  s . co m*/
 * get Inspections By VehiclePlate for webservice
 * one overloaded method is associated method
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehiclePlate
 * @param firstResult
 * @param maxResults
 * @return List<VsdInspection>
 * @throws VSDDataAccessException
 */
public List<VsdInspection> getInspectionsByVehiclePlateForWS(final DataServiceContext dsContext,
        boolean retrieveArabicData, VehiclePlate vehiclePlate, int firstResult, int maxResults)
        throws VSDDataAccessException {
    logger.info("getInspectionsByVehiclePlateForWS -- START");
    List<VsdInspection> inspections;
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.property("i.inspectionId"), "inspectionId");
        projectionList.add(Projections.property("i.inspectionTimestamp"), "inspectionTimestamp");

        Criteria projectionCriteria = session.createCriteria(VsdInspection.class, "i")
                .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vi.vehiclePlateCategory", vehiclePlate.getPlateCategory()).ignoreCase())
                .add(Restrictions.eq("vi.vehiclePlateCode", vehiclePlate.getPlateCode()).ignoreCase())
                .add(Restrictions.eq("vi.vehiclePlateSource", vehiclePlate.getPlateSource()).ignoreCase())
                .add(Restrictions.eq("vi.vehiclePlateNumber", vehiclePlate.getPlateNumber()).ignoreCase())
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN,
                        Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN,
                        Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN,
                        Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN,
                        Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN,
                        Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE))
                .setProjection(Projections.projectionList().add(Projections.property("i.inspectionId")))
                .setProjection(Projections.distinct(projectionList))
                .addOrder(Order.desc("i.inspectionTimestamp"))
                .setResultTransformer(new AliasToBeanResultTransformer(VsdInspection.class))
                .setFirstResult(firstResult).setMaxResults(maxResults);
        List list = projectionCriteria.list();
        logger.debug("list.size() : " + list.size());
        Set resultSet = new HashSet(list);
        logger.debug("resultSet.size() : " + resultSet.size());
        if (resultSet.size() == 0)
            return new ArrayList();
        Iterator iterator = resultSet.iterator();
        ArrayList innerQueryList = new ArrayList<Long>();
        while (iterator.hasNext()) {
            VsdInspection vsdInspection = (VsdInspection) iterator.next();
            innerQueryList.add(vsdInspection.getInspectionId());
        }
        inspections = session.createCriteria(VsdInspection.class, "i")
                .add(Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vi.vehiclePlateCategory", vehiclePlate.getPlateCategory()).ignoreCase())
                .add(Restrictions.eq("vi.vehiclePlateCode", vehiclePlate.getPlateCode()).ignoreCase())
                .add(Restrictions.eq("vi.vehiclePlateSource", vehiclePlate.getPlateSource()).ignoreCase())
                .add(Restrictions.eq("vi.vehiclePlateNumber", vehiclePlate.getPlateNumber()).ignoreCase())
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdViolation", "v", Criteria.LEFT_JOIN,
                        Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdChannelDefects", "cd", Criteria.LEFT_JOIN,
                        Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdChannelPartInst", "cpi", Criteria.LEFT_JOIN,
                        Restrictions.eq("cpi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cpi.vsdChannelPartner", "cp", Criteria.LEFT_JOIN,
                        Restrictions.eq("cp.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cp.vsdPartner", "p", Criteria.LEFT_JOIN,
                        Restrictions.eq("p.isDeleted", IDataService.BOOL_FALSE))
                .addOrder(Order.desc("i.inspectionTimestamp"))
                .add(Property.forName("i.inspectionId").in(innerQueryList))
                .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
        logger.debug("inspections.size() : " + inspections.size());
    } catch (Exception ex) {
        logger.error("An error occured in getInspectionsByVehiclePlateForWS()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
    logger.info("getInspectionsByVehiclePlateForWS -- END");
    return inspections;
}

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

/**
 * //ww  w  .  ja  v  a2  s .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.InspectionDataServiceImpl.java

/**
 * /*from  ww w.  ja va  2 s  .c om*/
 * get Count for 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 Long getCountForInspectionsByTrafficFileNumber(final DataServiceContext dsContext,
        boolean retrieveArabicData, String trafficFileNumber) throws VSDDataAccessException {
    logger.info("getCountForInspectionsByTrafficFileNumber -- START");
    Long count = new Long(0);
    try {
        Session session = (Session) dsContext.getInternalContext();
        ProjectionList projectionList = Projections.projectionList();

        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.countDistinct("i.inspectionId"))
                .addOrder(Order.desc("i.inspectionTimestamp"));
        count = (Long) projectionCriteria.uniqueResult();
        logger.debug("count : " + count);

    } catch (Exception ex) {
        logger.error("An error occured in getCountForInspectionsByTrafficFileNumber()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
    logger.info("getCountForInspectionsByTrafficFileNumber -- END");
    return count.longValue();
}

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

/**
 * search vehicles.//from www.  j a v a 2s .  c o 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 {/* ww w  . j  a  va  2  s . c  o  m*/
        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);
    }
}