Example usage for org.hibernate.criterion Projections countDistinct

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

Introduction

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

Prototype

public static CountProjection countDistinct(String propertyName) 

Source Link

Document

A distinct property value count projection

Usage

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

/**
 * /*from w  w  w  . j  a v a  2 s  .  c  o m*/
 * Gets count for a list of vehicles having an owner with the provided trade license number. The manufacturer(VsdVehicleManufacturer), risk rating (VsdRRProfiling,VsdRiskRating) and plate category code(VsdVehPlateCatCode) details will also be populated
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param Long
 * @throws VSDDataAccessException
 */
public Long getCountForVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber(
        DataServiceContext dsContext, boolean retrieveArabicData, String traficFileNo)
        throws VSDDataAccessException {
    logger.info(
            "getCountForVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber -- START");
    Long count = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        count = (Long) 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))
                .setProjection(Projections.countDistinct("v.vehicleId")).uniqueResult();
        logger.info(
                "getCountForVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber -- END");
        return count;
    } catch (Exception ex) {
        logger.error(
                "An error occured in getCountForVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

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

/**
 * /*from w w  w.  j a v  a2s  .c  o m*/
 * Gets the count for getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param traficFileNo
 * @param paginationValues
 * @return Long
 * @throws VSDDataAccessException
 */
public Long getCountForGetVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber(
        DataServiceContext dsContext, boolean retrieveArabicData, String traficFileNo)
        throws VSDDataAccessException {
    logger.info(
            "getCountForVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber -- START");
    try {
        Session session = (Session) dsContext.getInternalContext();
        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))
                .setProjection(Projections.countDistinct("v.vehicleId"));
        Long count = (Long) crit.uniqueResult();
        logger.info(
                "getCountForVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber -- END");
        return count;
    } catch (Exception ex) {
        logger.error(
                "An error occured in getCountForVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTrficFileNumber()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

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

/**
 * /*from www  .j  av  a  2s .  com*/
 * Gets the count for getVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber 
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param tradeLicenseNumber
 * @return Long
 * @throws VSDDataAccessException
 */
public Long getCountForGetVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber(
        DataServiceContext dsContext, boolean retrieveArabicData, String tradeLicenseNumber)
        throws VSDDataAccessException {
    logger.info(
            "getCountForGetVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber -- START");

    try {
        Session session = (Session) dsContext.getInternalContext();
        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.countDistinct("v.vehicleId"));
        Long count = (Long) crit.uniqueResult();
        logger.info(
                "getCountForGetVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber -- END");
        return count;
    } catch (Exception ex) {
        logger.error(
                "An error occured in getCountForGetVehiclesWithRiskRatingManufacturerPlateCategoryCodeDetailsByTradeLicenseNumber()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

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

/**
 * //from ww  w.  j  a  v a2  s . c o m
 * Gets the count for getViolationsByPlateDetails
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehiclePlateDetails
 * @return Long
 * @throws VSDDataAccessException
 */
public Long getCountForGetViolationsByPlateDetails(final DataServiceContext dsContext,
        boolean retrieveArabicData, VehiclePlate vehiclePlateDetails) throws VSDDataAccessException {
    logger.info("getCountForGetViolationsByPlateDetails -- START");

    try {
        Session session = (Session) dsContext.getInternalContext();
        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())
                .addOrder(Order.desc("violaton.violationId"))
                .setProjection(Projections.countDistinct("violaton.violationId"));
        Long count = (Long) crit.uniqueResult();
        logger.info("getCountForGetViolationsByPlateDetails -- END");
        return count;
    } catch (Exception ex) {
        logger.error("An error occured in getCountForGetViolationsByPlateDetails()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

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

/**
 * //w  w  w  .j av a2s  .  co  m
 * Gets count of getViolationsWithInspections results
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @return Long
 * @throws VSDDataAccessException
 */
public Long getCountForGetViolationsWithInspections(DataServiceContext dsContext, boolean retrieveArabicData)
        throws VSDDataAccessException {
    logger.info("getCountForGetViolationsWithInspections -- START");

    try {
        Session session = (Session) dsContext.getInternalContext();
        Criteria crit = session.createCriteria(VsdViolation.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN,
                        Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("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))
                .addOrder(Order.desc("v.violationId"))
                .setProjection(Projections.countDistinct("v.violationId"));
        Long count = (Long) crit.uniqueResult();
        logger.info("getCountForGetViolationsWithInspections -- END");
        return count;
    } catch (Exception ex) {
        logger.error("An error occured in getCountForGetViolationsWithInspections()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

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

/**
 * /*w  w w.j a va2s  . c  o  m*/
 * Gets count for all the violations for vehicles owned by the owner with the specified trade license number
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param traficFileNo
 * @return Long
 * @throws VSDDataAccessException
 */
public Long getCountForViolationsByTraficFileNumber(final DataServiceContext dsContext,
        boolean retrieveArabicData, String traficFileNo) throws VSDDataAccessException {
    logger.info("getCountForViolationsByTraficFileNumber -- START");
    Long violationsCount = null;
    try {
        Session session = (Session) dsContext.getInternalContext();
        violationsCount = (Long) session.createCriteria(VsdViolation.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN,
                        Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("oi.trafficFileNumber", traficFileNo).ignoreCase())
                .setProjection(Projections.countDistinct("v.violationId")).uniqueResult();
        logger.info("getCountForViolationsByTraficFileNumber -- END");
        return violationsCount;
    } catch (Exception ex) {
        logger.error("An error occured in getCountForViolationsByTraficFileNumber()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

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

/**
 * /*from   w  w  w .  j  a v a  2  s  .c  o m*/
 * Gets the count for getViolationsByTradeLicenseNumber
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param tradeLicenseNumber
 * @return Long
 * @throws VSDDataAccessException
 */
public Long getCountForGetViolationsByTradeLicenseNumber(final DataServiceContext dsContext,
        boolean retrieveArabicData, String tradeLicenseNumber) throws VSDDataAccessException {
    logger.info("getCountForGetViolationsByTradeLicenseNumber -- START");
    try {
        Session session = (Session) dsContext.getInternalContext();
        Criteria crit = session.createCriteria(VsdViolation.class, "v")
                .add(Restrictions.eq("v.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("v.vsdInspections", "i", Criteria.LEFT_JOIN,
                        Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("oi.tradeLicenseNumber", tradeLicenseNumber).ignoreCase())
                .addOrder(Order.desc("v.violationId"))
                .setProjection(Projections.countDistinct("v.violationId"));
        Long count = (Long) crit.uniqueResult();
        logger.info("getCountForGetViolationsByTradeLicenseNumber -- END");
        return count;
    } catch (Exception ex) {
        logger.error("An error occured in getCountForGetViolationsByTradeLicenseNumber()");
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
}

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

/**
 * /*from  w w  w . j  a  va 2 s  . com*/
 * get count for Violations By ChassisNumber
 * associated overloaded method
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehicleChassisNumber
 * @return Long
 * @throws VSDDataAccessException
 */
public Long getCountForViolationsByChassisNumber(final DataServiceContext dsContext, boolean retrieveArabicData,
        String vehicleChassisNumber) throws VSDDataAccessException {
    logger.info("getCountForViolationsByChassisNumber -- START");
    Long violationsCount;
    try {
        Session session = (Session) dsContext.getInternalContext();

        Criteria projectionCriteria = session.createCriteria(VsdViolation.class, "violation")
                .add(Restrictions.eq("violation.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violation.vsdViolationStatus", "vstat", Criteria.LEFT_JOIN,
                        Restrictions.eq("vstat.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violation.vsdInspections", "i", Criteria.LEFT_JOIN,
                        Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("vi.vehicleChassisNumber", vehicleChassisNumber).ignoreCase())
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdLocation", "loc", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("loc.vsdLocation", "loc2", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc2.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violation.vsdChannelDefects", "cd", Criteria.LEFT_JOIN,
                        Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdDefect", "d", Criteria.LEFT_JOIN,
                        Restrictions.eq("d.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdChannelDefectFines", "cdf", Criteria.LEFT_JOIN,
                        Restrictions.eq("cdf.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("violation.violationId"));
        violationsCount = (Long) projectionCriteria.uniqueResult();

        logger.debug("violationsCount : " + violationsCount);
    } catch (Exception ex) {
        logger.error("An error occured in getCountForViolationsByChassisNumber()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
    logger.info("getCountForViolationsByChassisNumber -- END");
    return violationsCount;
}

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

/**
 * //from w w w  .  ja  v  a2 s.  co  m
 * get count for Violations By VehiclePlate (For Webservice)
 * associated overloaded method
 * 
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param vehiclePlate
 * @return Long
 * @throws VSDDataAccessException
 */
public Long getCountForViolationsByVehiclePlateForWS(final DataServiceContext dsContext,
        boolean retrieveArabicData, VehiclePlate vehiclePlate) throws VSDDataAccessException {
    logger.info("getCountForViolationsByVehiclePlateForWS -- START");
    Long violationsCount;
    try {
        Session session = (Session) dsContext.getInternalContext();

        Criteria projectionCriteria = session.createCriteria(VsdViolation.class, "violation")
                .add(Restrictions.eq("violation.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violation.vsdViolationStatus", "vstat", Criteria.LEFT_JOIN,
                        Restrictions.eq("vstat.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violation.vsdInspections", "i", Criteria.LEFT_JOIN,
                        Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.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.vsdLocation", "loc", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("loc.vsdLocation", "loc2", Criteria.LEFT_JOIN,
                        Restrictions.eq("loc2.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violation.vsdChannelDefects", "cd", Criteria.LEFT_JOIN,
                        Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdDefect", "d", Criteria.LEFT_JOIN,
                        Restrictions.eq("d.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdChannelDefectFines", "cdf", Criteria.LEFT_JOIN,
                        Restrictions.eq("cdf.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("violation.violationId"));
        violationsCount = (Long) projectionCriteria.uniqueResult();

        logger.debug("violationsCount : " + violationsCount);
    } catch (Exception ex) {
        logger.error("An error occured in getCountForViolationsByVehiclePlateForWS()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
    logger.info("getCountForViolationsByVehiclePlateForWS -- END");
    return violationsCount;
}

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

/**
 * /*from   www . j a va 2s  .  c o m*/
 * get Violations By TrafficFileNumber
 * getViolationsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber) 
 * getCountForViolationsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber)
 * getViolationsByTrafficFileNumber(dsContext, retrieveArabicData, trafficFileNumber, maxResults, firstResult)
 * @author Eldon Barrows
 * @param dsContext
 * @param retrieveArabicData
 * @param trafficFileNumber
 * @param maxResults
 * @param firstResult
 * @return List<Violation>
 * @throws VSDDataAccessException
 */
public Long getCountForViolationsByTrafficFileNumber(final DataServiceContext dsContext,
        boolean retrieveArabicData, String trafficFileNumber) throws VSDDataAccessException {
    logger.info("getCountForViolationsByTrafficFileNumber -- START");
    Long violationsCount = new Long(0);
    try {
        Session session = (Session) dsContext.getInternalContext();

        Criteria projectionCriteria = session.createCriteria(VsdViolation.class, "violation")
                .add(Restrictions.eq("violation.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("violation.vsdInspections", "i", Criteria.LEFT_JOIN,
                        Restrictions.eq("i.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("i.vsdVehicleInfo", "vi", Criteria.LEFT_JOIN,
                        Restrictions.eq("vi.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vi.vsdOwnerInfos", "oi", Criteria.LEFT_JOIN,
                        Restrictions.eq("oi.isDeleted", IDataService.BOOL_FALSE))
                .add(Restrictions.eq("oi.trafficFileNumber", trafficFileNumber).ignoreCase())
                .createCriteria("violation.vsdViolationStatus", "vs", Criteria.LEFT_JOIN,
                        Restrictions.eq("vs.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))
                .createCriteria("violation.vsdChannelDefects", "cd", Criteria.LEFT_JOIN,
                        Restrictions.eq("cd.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdDefect", "d", Criteria.LEFT_JOIN,
                        Restrictions.eq("d.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("d.vsdDefectCategory", "dc", Criteria.LEFT_JOIN,
                        Restrictions.eq("dc.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cd.vsdChannelDefectFines", "cdf", Criteria.LEFT_JOIN,
                        Restrictions.eq("cdf.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("cdf.vsdVCatDefSevFine", "vcdsf", Criteria.LEFT_JOIN,
                        Restrictions.eq("vcdsf.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("vcdsf.vsdPartnerFine", "pf", Criteria.LEFT_JOIN,
                        Restrictions.eq("pf.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("pf.vsdPartner", "partner", Criteria.LEFT_JOIN,
                        Restrictions.eq("partner.isDeleted", IDataService.BOOL_FALSE))
                .createCriteria("pf.vsdFine", "vsdFine", Criteria.LEFT_JOIN,
                        Restrictions.eq("vsdFine.isDeleted", IDataService.BOOL_FALSE))
                .setProjection(Projections.countDistinct("violation.violationId"))
                .addOrder(Order.desc("violation.reportedDate"));

        violationsCount = (Long) projectionCriteria.uniqueResult();
        logger.debug("violationsCount : " + violationsCount);
    } catch (Exception ex) {
        logger.error("An error occured in getCountForViolationsByTrafficFileNumber()");
        logger.error(ex);
        throw new VSDDataAccessException(ex.getMessage(), ex);
    }
    logger.info("getCountForViolationsByTrafficFileNumber -- END");
    return violationsCount;
}