List of usage examples for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY
ResultTransformer DISTINCT_ROOT_ENTITY
To view the source code for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY.
Click Source Link
From source file:com.ignou.aadhar.dao.hibernate.TransactionDaoHibernate.java
License:Open Source License
/** * Gets the records from the Database based on the parameters provided. * @param searchField The field name on which the search is to be made. * @param searchValue Value which needs to be searched. * @param pageNumber Initial offset of the records. * @param recordsPerPage Total number of records which are selected for * resultset./* w w w.j a va 2s.c o m*/ * @param sortField Name of the field on which the data needs to be sorted. * @param sortOrder Order in which the sortField is sorted. * @return Returns the records as list of map where each map stores the * record data as key-value pairs. */ @Override @Transactional public List<Map<String, Object>> getTransactions(String searchField, String searchValue, Integer pageNumber, Integer recordsPerPage, String sortField, String sortOrder) { List<Transaction> records = null; List<Map<String, Object>> returnRecords = new ArrayList<Map<String, Object>>(); Criteria criteria = getSessionFactory().getCurrentSession().createCriteria(Transaction.class); /* Add the search parameters to the criteria */ if (searchField != null && !searchField.isEmpty() && searchValue != null && !searchValue.isEmpty()) { /* Prefix and suffix the searchValue with % */ searchValue = "%" + searchValue + "%"; /* Set the matching field accordingly */ if ("uid".equals(searchField)) { criteria.add(Restrictions.ilike("citizen.uid", searchValue)); } else if ("serviceprovider".equals(searchField)) { criteria.add(Restrictions.ilike("serviceProvider.name", searchValue)); } else if ("clientTxnId".equals(searchField)) { criteria.add(Restrictions.ilike("spTransactionId", searchValue)); } else if ("bankTxnId".equals(searchField)) { criteria.add(Restrictions.ilike("bankTransactionId", searchValue)); } else if ("status".equals(searchField)) { criteria.add(Restrictions.ilike("status", searchValue)); } } /* Let's first get the total number of records that satisfy the provided * parameters. */ String totalCount = (String) criteria.setProjection(Projections.rowCount()).uniqueResult().toString(); /* Reset the Criteria specification to remove the projection details */ criteria.setProjection(null); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); /* Set the default sort field if not provided */ if (sortField != null && !sortField.isEmpty()) { /* Check what order was provided for this field */ if ("asc".equals(sortOrder)) { /* Sort in ascending order */ criteria.addOrder(Order.asc(sortField)); } else if ("desc".equals(sortOrder)) { /* Sort in descending order */ criteria.addOrder(Order.desc(sortField)); } else { /* Default sort behaviour other wise */ criteria.addOrder(Order.asc(sortField)); } } /* Set the record filtering on pageCount and recordsPerPage if they are * available. */ if (pageNumber != null && recordsPerPage != null) { records = criteria.setFirstResult(pageNumber).setMaxResults(recordsPerPage).list(); } else { records = criteria.list(); } /* Format the Date */ SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy h:m:s a"); /* Format this data before sending back for any other further usage */ for (Transaction transaction : records) { /* Create new map for current transaction and add it to * master list */ Map<String, Object> returnMap = new LinkedHashMap<String, Object>(); returnMap.put("id", transaction.getId()); returnMap.put("uid", transaction.getCitizen().getUid()); returnMap.put("name", transaction.getCitizen().getName()); returnMap.put("serviceprovider", transaction.getServiceProvider().getName()); returnMap.put("clientTxnId", transaction.getSpTransactionId()); returnMap.put("bankTxnId", transaction.getBankTransactionId()); returnMap.put("status", transaction.getStatus()); returnMap.put("created", format.format(transaction.getCreated())); returnMap.put("amount", transaction.getAmount()); returnMap.put("totalCount", totalCount); returnRecords.add(returnMap); } return returnRecords; }
From source file:com.jubination.model.dao.AdminDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) public Object readPropertyList(Object entity, String listType) { Admin admin = (Admin) entity;//from w w w .j ava 2 s . co m List list = null; switch (listType) { case "Inbox": session = getSessionFactory().getCurrentSession(); admin = (Admin) session.get(Admin.class, admin.getUsername()); Criteria criteria = session.createCriteria(MailMessage.class, "msg"); criteria.add(Restrictions.eq("msg.receiver.username", admin.getUsername())); criteria.addOrder(Order.desc("messageId")); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); criteria.setFirstResult(0); criteria.setMaxResults(10); list = criteria.list(); break; case "Sent": session = getSessionFactory().getCurrentSession(); admin = (Admin) session.get(Admin.class, admin.getUsername()); criteria = session.createCriteria(MailMessage.class, "msg"); criteria.add(Restrictions.eq("msg.sender.username", admin.getUsername())); criteria.addOrder(Order.desc("messageId")); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); criteria.setFirstResult(0); criteria.setMaxResults(10); list = criteria.list(); break; default: System.out.println("Not an option"); admin = null; break; } return (T) list; }
From source file:com.jubination.model.dao.ClientDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED) public List<TempClient> readClientWithStatus(String param) { session = getSessionFactory().getCurrentSession(); Criteria criteria = session.createCriteria(TempClient.class); criteria.add(Restrictions.eq("callStatus", param)); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); List<TempClient> list = criteria.list(); System.out.println("READ TEMP CLIENT WITH A STATUS :::::::::::::::::::::::::::::::::::::::::::::::CHECK"); return list;/* ww w . j a v a 2 s.c o m*/ }
From source file:com.jubination.model.dao.ClientDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED) public List<TempClient> readClientOvernight() { session = getSessionFactory().getCurrentSession(); Criteria criteria = session.createCriteria(TempClient.class); criteria.add(Restrictions.eq("overnight", true)); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); List<TempClient> list = criteria.list(); System.out.println("READ TEMP CLIENT OVERNIGHT :::::::::::::::::::::::::::::::::::::::::::::::CHECK"); return list;//from www. j a v a 2 s . c o m }
From source file:com.jubination.model.dao.ClientDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) public Object fetchInnerEntities(String param, String type) { List<Lead> list = null; if (param.equals("Lead")) { if (type.equals("NotificationOn")) { session = getSessionFactory().getCurrentSession(); list = (List<Lead>) session.createCriteria(Lead.class).add(Restrictions.isNotNull("followUpDate")) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list(); }/*w w w .j ava 2s . c om*/ if (type.equals("Pending")) { session = getSessionFactory().getCurrentSession(); list = (List<Lead>) session.createCriteria(Lead.class).add(Restrictions.ge("count", 1)) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list(); } } else if (param.equals("Number")) { session = getSessionFactory().getCurrentSession(); list = (List<Lead>) session.createCriteria(Lead.class).createAlias("client", "c") .add(Restrictions.eq("c.phoneNumber", type)) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list(); } else if (param.equals("MissedAppointmentStatusToday")) { session = getSessionFactory().getCurrentSession(); list = (List<Lead>) session.createCriteria(Lead.class) .add(Restrictions.and(Restrictions.like("missedAppointmentStatus", type, MatchMode.ANYWHERE), Restrictions.eq("appointmentDate", new SimpleDateFormat("yyyy-MM-dd").format(new Date())))) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list(); } else if (param.equals("ActiveSourceLeads")) { session = getSessionFactory().getCurrentSession(); list = (List<Lead>) session.createCriteria(Lead.class, "l").createAlias("client", "c") .add(Restrictions.and(Restrictions.ge("l.count", 1), Restrictions.eq("c.source", type))) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list(); } if (list != null) { for (Lead lead : list) { if (lead != null) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } } } } System.out.println("READ LEAD WITH A STATUS :::::::::::::::::::::::::::::::::::::::::::::::CHECK"); return (T) list; }
From source file:com.jubination.model.dao.ClientDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) public Object getByProperty(Object entity, String listType) { List<Client> list = new ArrayList<Client>(); switch (listType) { case "Email": String emailId = (String) entity; session = getSessionFactory().getCurrentSession(); Criteria criteria = session.createCriteria(Client.class, "client"); criteria.add(Restrictions.eq("emailId", emailId)); list = criteria.list();// w w w. j a v a2s .co m break; case "City": String city = (String) entity; session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class, "client"); criteria.add(Restrictions.like("city", city, MatchMode.START)); list = criteria.list(); break; case "Id": Long orderId = (Long) entity; session = getSessionFactory().getCurrentSession(); list.add((Client) session.get(Client.class, orderId)); break; case "LeadId": String leadId = (String) entity; session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class, "client"); criteria.add(Restrictions.eq("tempLeadDetails", leadId)); list = criteria.list(); break; case "Number": String number = (String) entity; session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class); criteria.add(Restrictions.like("phoneNumber", number, MatchMode.ANYWHERE)); list = criteria.list(); for (Client client : list) { client.getLead().size(); for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } } } break; case "Name": String name = (String) entity; session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class); criteria.add(Restrictions.like("name", name, MatchMode.ANYWHERE)); list = criteria.list(); break; case "DateCreated": String dateCreated = (String) entity; session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class); criteria.add(Restrictions.like("dateCreation", dateCreated, MatchMode.START)); list = criteria.list(); break; case "DateCreatedLeadProperty": dateCreated = (String) entity; session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Lead.class); criteria.createAlias("client", "c") .add(Restrictions.like("c.dateCreation", dateCreated, MatchMode.START)); list = criteria.list(); break; case "DateUpdatedFull": String dateUpdated = (String) entity; session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class, "client"); criteria.createAlias("client.lead", "l"); criteria.createAlias("l.call", "c"); criteria.add(Restrictions.like("c.DateUpdated", dateUpdated, MatchMode.START)); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client client : list) { client.getLead().size(); for (Lead lead : client.getLead()) { lead.getCall().size(); if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } } } break; default: System.err.println("Not a valid option"); break; } System.out.println( "READ CLIENT WITH A PROPERTY (INNER AND NON INNER MIXED) :::::::::::::::::::::::::::::::::::::::::::::::CHECK"); return list; }
From source file:com.jubination.model.dao.ClientDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) public List fetchEntities(String paramVal) { List list = null;// w ww .ja v a2 s . c o m switch (paramVal) { case "PendingMinusOne": session = getSessionFactory().getCurrentSession(); Criteria criteria = session.createCriteria(Client.class, "c"); criteria.createAlias("c.lead", "l"); criteria.add(Restrictions.and(Restrictions.lt("l.count", 0), Restrictions.isNull("l.followUpDate"), Restrictions.gt("l.leadId", "50000"))); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client client : (List<Client>) list) { client.getLead().size(); for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } lead.getCall().size(); } } break; case "PendingInProgress": session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class, "c"); criteria.createAlias("c.lead", "l"); criteria.createAlias("l.call", "call"); criteria.add(Restrictions.and(Restrictions.le("l.count", 0), Restrictions.gt("l.leadId", "50000"), Restrictions.eq("call.Status", "in-progress"))); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client client : (List<Client>) list) { client.getLead().size(); for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } lead.getCall().size(); } } break; case "PendingAndNotified": session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class, "c"); criteria.createAlias("c.lead", "l"); criteria.add(Restrictions.or(Restrictions.and( Restrictions.ge("l.count", 1), Restrictions.eq("l.followUpDate", ""), Restrictions.isNull("l.followUpDate")), Restrictions.and(Restrictions.ge("l.count", 1), Restrictions.ne("l.followUpDate", ""), Restrictions.isNotNull("l.followUpDate"), Restrictions.le("l.followUpDate", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))), Restrictions.eq("l.followUpDate", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))) ); criteria.addOrder(Order.desc("l.followUpDate")); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client client : (List<Client>) list) { client.getLead().size(); for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } lead.getCall().size(); } } break; case "Pending": session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class, "c"); criteria.createAlias("c.lead", "l"); criteria.add(Restrictions.and(Restrictions.and(Restrictions.ge("l.count", 1), Restrictions.isNull("l.missedAppointment"), Restrictions.isNull("l.followUpDate")))); criteria.addOrder(Order.asc("l.count")); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client client : (List<Client>) list) { client.getLead().size(); for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } lead.getCall().size(); } } break; case "Notified": session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class, "c"); criteria.createAlias("c.lead", "l"); criteria.add( Restrictions.or( Restrictions.and( Restrictions .and(Restrictions.ge("l.count", 1), Restrictions.and( Restrictions.le("l.followUpDate", new SimpleDateFormat("yyyy-MM-dd") .format(new Date())), Restrictions.gt("l.followUpDate", "2016-01-01"))), Restrictions.isNull("l.missedAppointment")), Restrictions.and( Restrictions.eq("l.followUpDate", new SimpleDateFormat("yyyy-MM-dd").format(new Date())), Restrictions.eq("l.leadStatus", "Follow up/Call back")))); criteria.addOrder(Order.asc("l.followUpDate")); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client client : (List<Client>) list) { client.getLead().size(); for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } lead.getCall().size(); } } break; case "PendingMA": session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class, "c"); criteria.createAlias("c.lead", "l"); criteria.add(Restrictions.and(Restrictions.ge("l.count", 1), Restrictions.eq("l.missedAppointment", true), Restrictions.isNull("l.followUpDate"))); criteria.addOrder(Order.desc("l.count")); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client client : (List<Client>) list) { client.getLead().size(); for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } lead.getCall().size(); } } break; case "NotifiedMA": session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class); criteria.createAlias("lead", "l"); criteria.add(Restrictions.and( Restrictions.and(Restrictions.ge("l.count", 1), Restrictions.and( Restrictions.le("l.followUpDate", new SimpleDateFormat("yyyy-MM-dd").format(new Date())), Restrictions.gt("l.followUpDate", "2016-01-01"))), Restrictions.eq("l.missedAppointment", true))); criteria.addOrder(Order.asc("l.followUpDate")); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client client : (List<Client>) list) { client.getLead().size(); for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } lead.getCall().size(); } } break; case "Overnight": session = getSessionFactory().getCurrentSession(); criteria = session.createCriteria(Client.class); criteria.add(Restrictions.eq("overnight", true)); list = criteria.list(); for (Client client : (List<Client>) list) { for (Lead lead : client.getLead()) { if (lead.getBeneficiaries() != null) { lead.getBeneficiaries().size(); } lead.getCall().size(); } client.getLead().size(); } break; default: break; } if (list != null) { System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" + list.size() + "$$$" + paramVal); } System.out.println( "READ CLIENT WITH INNER ELEMENTS WITH STATUS :::::::::::::::::::::::::::::::::::::::::::::::CHECK"); return list; }
From source file:com.jubination.model.dao.ClientDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) public List<Object> fetchFreshCallEntity(String fromDate, String toDate) { List list = null;/* w w w . ja v a 2 s. c o m*/ session = getSessionFactory().getCurrentSession(); Criteria criteria = session.createCriteria(Client.class, "client").add(Restrictions.and( Restrictions.ge("client.dateCreation", fromDate), Restrictions.le("client.dateCreation", toDate))); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); list = criteria.list(); for (Client c : (List<Client>) list) { c.getLead().size(); for (Lead l : c.getLead()) { l.getCall().size(); } } System.out.println( "IMPORTANT:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::" + list.size()); return list; }
From source file:com.jubination.model.dao.ProductsDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) public List<String> fetchProductNames(String name) { session = getSessionFactory().getCurrentSession(); return session.createCriteria(Products.class) .setProjection(Projections.projectionList().add(Projections.property("name"))) .add(Restrictions.ilike("name", name, MatchMode.START)) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list(); }
From source file:com.jubination.model.dao.ProductsDAOImpl.java
@Transactional(propagation = Propagation.REQUIRED, readOnly = true) public List<String> fetchCampaignNames(String name) { session = getSessionFactory().getCurrentSession(); return session.createCriteria(Campaigns.class) .setProjection(Projections.projectionList().add(Projections.property("name"))) .add(Restrictions.ilike("name", name, MatchMode.START)) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).list(); }