List of usage examples for org.hibernate.criterion DetachedCriteria forEntityName
@SuppressWarnings("UnusedDeclaration") public static DetachedCriteria forEntityName(String entityName)
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Searches for Projects after criterion from searchProjectBean. * /*from w ww.ja v a2s . co m*/ * @author Adelina * * @param searchProjectBean * @param statusIds * @param isDeleteAction * @return */ public List<Project> getFromSearch(SearchProjectBean searchProjectBean, Set<Byte> statusIds, Set<Integer> clientIds, boolean isDeleteAction, MessageSource messageSource) { logger.debug("getFromSearch - START - "); UserAuth userAuth = (UserAuth) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); // set search criterion DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectAllEntity); DetachedCriteria dcCount = DetachedCriteria.forEntityName(IModelConstant.projectAllEntity); if (searchProjectBean.getOrganizationId() != -1) { dc.add(Restrictions.eq("organizationId", searchProjectBean.getOrganizationId())); dcCount.add(Restrictions.eq("organizationId", searchProjectBean.getOrganizationId())); } if (!userAuth.hasAuthority(PermissionConstant.getInstance().getCM_ProjectAdvancedSearch())) { // search only for projects that the user belongs to (such as manager or member) List<TeamMember> members = new ArrayList<TeamMember>(); List<ProjectTeam> projectTeams = new ArrayList<ProjectTeam>(); List<Integer> projectIds = new ArrayList<Integer>(); DetachedCriteria dc1 = DetachedCriteria.forEntityName(IModelConstant.teamMemberEntity); dc1.add(Restrictions.eq("personId", userAuth.getPersonId())); dc1.add(Restrictions.ne("status", IConstant.NOM_TEAM_MEMBER_STATUS_DELETED)); members = getHibernateTemplate().findByCriteria(dc1); logger.debug("members = " + members); if (members != null && members.size() > 0) { for (TeamMember user : members) { logger.debug("user = " + user); DetachedCriteria dcProjTeam = DetachedCriteria.forEntityName(IModelConstant.projectTeamEntity); dcProjTeam.add(Restrictions.eq("projectTeamId", user.getProjectTeamId())); dcProjTeam.add(Restrictions.ne("status", IConstant.NOM_PROJECT_TEAM_STATUS_DELETED)); projectTeams = getHibernateTemplate().findByCriteria(dcProjTeam); logger.debug("project teams = " + projectTeams); if (projectTeams != null && projectTeams.size() > 0) { for (ProjectTeam projectTeam : projectTeams) { logger.debug("project team = " + projectTeam); projectIds.add(projectTeam.getProjectId()); } } } } if (projectTeams == null || projectTeams.size() == 0) { projectIds.add(new Integer(-1)); } logger.debug("projectIds = " + projectIds); if (projectIds != null && projectIds.size() > 0) { dc.add(Expression.or(Expression.eq("managerId", userAuth.getPersonId()), Restrictions.in("projectId", projectIds))); dcCount.add(Expression.or(Expression.eq("managerId", userAuth.getPersonId()), Restrictions.in("projectId", projectIds))); } } logger.debug("managerId = " + searchProjectBean.getManagerId()); // manager if (searchProjectBean.getManagerId() != null && searchProjectBean.getManagerId() != -1) { dc.add(Restrictions.eq("managerId", searchProjectBean.getManagerId())); dcCount.add(Restrictions.eq("managerId", searchProjectBean.getManagerId())); logger.debug("ManagerId Id: " + searchProjectBean.getManagerId()); } // name if (Tools.getInstance().stringNotEmpty(searchProjectBean.getName())) { dc.add(Restrictions.ilike("name", "%".concat(searchProjectBean.getName().concat("%")))); dcCount.add(Restrictions.ilike("name", "%".concat(searchProjectBean.getName().concat("%")))); logger.debug("name = " + searchProjectBean.getName()); } logger.debug("clientId = " + searchProjectBean.getClientId()); logger.debug("clientsIds = " + clientIds); // client if (searchProjectBean.getClientId() != null && searchProjectBean.getClientId() != 0) { dc.add(Restrictions.like("clientId", searchProjectBean.getClientId())); dcCount.add(Restrictions.like("clientId", searchProjectBean.getClientId())); } else { dc.add(Restrictions.in("clientId", clientIds)); dcCount.add(Restrictions.in("clientId", clientIds)); } //If the user didn't select at least one status then we'll make a search on all of these criterions // Status if (searchProjectBean.getStatus() != -1) { dc.add(Restrictions.eq("status", searchProjectBean.getStatus())); dcCount.add(Restrictions.eq("status", searchProjectBean.getStatus())); } else { dc.add(Restrictions.in("status", statusIds)); dcCount.add(Restrictions.in("status", statusIds)); } List<Project> res = null; //the order can be done while retrieving the data from the database only if the sort parameter is the project name or status; //this cannot be done if the results must be ordered by the client name if (searchProjectBean.getSortParam() != null && !"".equals(searchProjectBean.getSortParam()) && !"clientName".equals(searchProjectBean.getSortParam())) { // check if I have to order the results // if I have to, check if I have to order them ascending or descending if (searchProjectBean.getSortDirection() == -1) { // ascending dc.addOrder(Order.asc(searchProjectBean.getSortParam())); } else { // descending dc.addOrder(Order.desc(searchProjectBean.getSortParam())); } // if the request didn't come from the pagination area, // it means that I have to set the number of results and pages if (isDeleteAction || searchProjectBean.getNbrOfResults() == -1) { boolean isSearch = false; if (searchProjectBean.getNbrOfResults() == -1) { isSearch = true; } // set the count(*) restriction dcCount.setProjection(Projections.countDistinct("projectId")); //findByCriteria must be called with firstResult and maxResults parameters; the default findByCriteria(DetachedCriteria criteria) implementation //sets firstResult and maxResults to -1, which kills the countDistinct Projection int nbrOfResults = ((Integer) getHibernateTemplate().findByCriteria(dcCount, 0, 0).get(0)) .intValue(); logger.debug("search results: ".concat(String.valueOf(nbrOfResults))); searchProjectBean.setNbrOfResults(nbrOfResults); // get the number of pages if (nbrOfResults % searchProjectBean.getResultsPerPage() == 0) { searchProjectBean.setNbrOfPages(nbrOfResults / searchProjectBean.getResultsPerPage()); } else { searchProjectBean.setNbrOfPages(nbrOfResults / searchProjectBean.getResultsPerPage() + 1); } // after a project is deleted, the same page has to be displayed; //only when all the client from last page are deleted, the previous page will be shown if (isDeleteAction && (searchProjectBean.getCurrentPage() > searchProjectBean.getNbrOfPages())) { searchProjectBean.setCurrentPage(searchProjectBean.getNbrOfPages()); } else if (isSearch) { searchProjectBean.setCurrentPage(1); } } res = (List<Project>) getHibernateTemplate().findByCriteria(dc, (searchProjectBean.getCurrentPage() - 1) * searchProjectBean.getResultsPerPage(), searchProjectBean.getResultsPerPage()); } else { res = (List<Project>) getHibernateTemplate().findByCriteria(dc); // if the request didn't come from the pagination area, // it means that I have to set the number of results and pages if (isDeleteAction || searchProjectBean.getNbrOfResults() == -1) { boolean isSearch = false; if (searchProjectBean.getNbrOfResults() == -1) { isSearch = true; } int nbrOfResults = res.size(); logger.debug("search results: ".concat(String.valueOf(nbrOfResults))); searchProjectBean.setNbrOfResults(nbrOfResults); // get the number of pages if (nbrOfResults % searchProjectBean.getResultsPerPage() == 0) { searchProjectBean.setNbrOfPages(nbrOfResults / searchProjectBean.getResultsPerPage()); } else { searchProjectBean.setNbrOfPages(nbrOfResults / searchProjectBean.getResultsPerPage() + 1); } // after an exchange is deleted, the same page has to be displayed; //only when all the exchanges from last page are deleted, the previous page will be shown if (isDeleteAction && (searchProjectBean.getCurrentPage() > searchProjectBean.getNbrOfPages())) { searchProjectBean.setCurrentPage(searchProjectBean.getNbrOfPages()); } else if (isSearch) { searchProjectBean.setCurrentPage(1); } } } List<Project> newRes = new ArrayList<Project>(); if (res != null && res.size() > 0) { // for every project for (Project project : res) { Project projectNew = getWithAll(project.getProjectId()); if (projectNew.getClientId() != null && projectNew.getClientId() > 0) { Client client = projectNew.getClient(); if (client != null) { if (client.getType() == IConstant.NOM_CLIENT_TYPE_FIRM) { projectNew.setClientName(client.getC_name()); } else { projectNew.setClientName( client.getP_firstName().concat(" ").concat(client.getP_lastName())); } } } else { projectNew.setClientName(messageSource.getMessage(CLIENT_FROM_ORG, null, null)); } newRes.add(projectNew); } } List<Project> projects = new ArrayList<Project>(); //sorting the exchanges list if (searchProjectBean.getSortParam() != null && searchProjectBean.getSortParam().equals("clientName")) { Collections.sort(newRes, ProjectComparator.getInstance().projectClientNameComparator()); //ascending or descending if (searchProjectBean.getSortDirection() == IConstant.DESCENDING) { Collections.reverse(newRes); } long start = (searchProjectBean.getCurrentPage() - 1) * searchProjectBean.getResultsPerPage(); long end = searchProjectBean.getCurrentPage() * searchProjectBean.getResultsPerPage(); // go over the entries if (newRes.size() > 0) { for (int i = (int) start; i < end; i++) { if (i >= newRes.size()) { continue; } projects.add(newRes.get(i)); } } } else { projects = newRes; } logger.debug("getFromSearch - END - results size : ".concat(String.valueOf(projects.size()))); return projects; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Get the projects identified by the clientId * //from w ww . j a v a 2s .co m * @author Adelina * * @param clientId * @return */ public List<Project> getProjectsByClientId(Integer clientId) { logger.debug("getProjectsByClientId - START , clientId : ".concat(clientId.toString())); List<Project> projects = null; DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectWithClientEntity); dc.add(Restrictions.eq("client.clientId", clientId)); dc.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); projects = getHibernateTemplate().findByCriteria(dc); for (Project project : projects) { Person manager = new Person(); try { manager = BLPerson.getInstance().get(project.getManagerId()); } catch (BusinessException be) { logger.error("", be); } catch (Exception e) { logger.error("", e); } // set the manager project.setManager(manager); } Tools.getInstance().printList(logger, projects); logger.debug("getProjectsByClientId - END"); return projects; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Get a project identified by id if it is not deleted * /* w w w. j av a 2 s .co m*/ * @author Adelina * * @param projectId * @return */ public Project getWithStatus(Integer projectId) { logger.debug("getWithStatus - START"); List<Project> projects = new ArrayList<Project>(); Project project = null; DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectForUpdateStatusEntity); dc.add(Restrictions.eq("projectId", projectId)); dc.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); projects = getHibernateTemplate().findByCriteria(dc); if (projects != null && projects.size() > 0) { project = projects.get(0); } logger.debug("getWithStatus - END"); return project; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Get the clients for certain projects/*from w w w . j av a 2 s. co m*/ * * @author Adelina * * @param organizationId * @return */ public List<Client> getClientsForProjects(Integer organizationId) { logger.debug("getClients - START - "); // set search criterion DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectAllEntity); List<Client> clients = new ArrayList<Client>(); List<Project> projects = new ArrayList<Project>(); dc.add(Restrictions.eq("organizationId", organizationId)); dc.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); projects = getHibernateTemplate().findByCriteria(dc); Set<Integer> clientIds = new HashSet<Integer>(); if (projects != null && projects.size() > 0) { for (Project project : projects) { clientIds.add(project.getClientId()); } logger.debug("clientIds = " + clientIds); DetachedCriteria dcClient = DetachedCriteria.forEntityName(IModelConstant.clientEntity); dcClient.add(Restrictions.in("clientId", clientIds)); dcClient.add(Restrictions.ne("status", IConstant.NOM_CLIENT_STATUS_DELETED)); clients = getHibernateTemplate().findByCriteria(dcClient); logger.debug("clients = " + clients); } logger.debug("getClients - END - "); return clients; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
public Project getForView(Integer projectId) { logger.debug("getForView - START"); DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectForDeleteEntity); List<Project> projects = new ArrayList<Project>(); dc.add(Restrictions.eq("projectId", projectId)); dc.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); projects = getHibernateTemplate().findByCriteria(dc); Project project = projects.get(0);/* w w w . j ava 2 s . co m*/ ProjectTeam projectTeam = projectTeamDao.get(projectId, true); project.setProjectTeam(projectTeam); Integer managerId = project.getManagerId(); logger.debug("managerId = " + managerId); Person manager = new Person(); try { manager = BLPerson.getInstance().get(managerId); } catch (BusinessException be) { logger.error("", be); } catch (Exception e) { logger.error("", e); } // set the manager project.setManager(manager); Integer clientId = project.getClientId(); if (clientId != null && clientId > 0) { Client client = new Client(); try { client = BLClient.getInstance().get(clientId); } catch (BusinessException be) { logger.error("", be); } catch (Exception e) { logger.error("", e); } // set the client project.setClient(client); } logger.debug("getForView - END - project with id =".concat(Integer.toString(projectId))); return project; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Get the projects for the client//from ww w .j a v a 2 s . c om * * @author Adelina * * @param clientId * @return */ public List<Project> getClientsProjects(Integer clientId) { logger.debug("getClientsProjects - START , clientId : ".concat(clientId.toString())); List<Project> projects = null; DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectForDeleteEntity); dc.add(Restrictions.eq("clientId", clientId)); dc.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); projects = getHibernateTemplate().findByCriteria(dc); Tools.getInstance().printList(logger, projects); logger.debug("getClientsProjects - END"); return projects; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Get all the projects by organizationId * //from w ww . jav a 2s. c o m * @author Adelina * * @param organizationId * @param isFinishedAndAbandoned * @return */ public List<Project> getAllProjects(Integer organizationId, boolean isFinishedAndAbandoned) { logger.debug("getProjects - START"); List<Project> projects = new ArrayList<Project>(); DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectAllEntity); dc.add(Restrictions.eq("organizationId", organizationId)); if (isFinishedAndAbandoned) { dc.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); } else { dc.add(Restrictions.eq("status", IConstant.NOM_PROJECT_STATUS_OPENED)); } List<Project> res = getHibernateTemplate().findByCriteria(dc); if (res != null && res.size() > 0) { // for every project for (Project project : res) { Project projectNew = getWithAll(project.getProjectId()); projects.add(projectNew); } } logger.debug("getProjects - END"); return projects; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Get projects by person/* w ww . j a va 2s .com*/ * * @author Adelina * * @param personId * @return */ public List<Project> getProjectsByPerson(Integer personId, boolean isFinishedAndAbandoned) { logger.debug("getProjectsByPerson - START"); logger.debug("personId = " + personId); List<Project> projects = new ArrayList<Project>(); List<TeamMember> members = new ArrayList<TeamMember>(); List<ProjectTeam> projectTeams = new ArrayList<ProjectTeam>(); List<Integer> projectIds = new ArrayList<Integer>(); DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.teamMemberEntity); dc.add(Restrictions.eq("personId", personId)); dc.add(Restrictions.ne("status", IConstant.NOM_TEAM_MEMBER_STATUS_DELETED)); members = getHibernateTemplate().findByCriteria(dc); logger.debug("members = " + members); if (members != null && members.size() > 0) { for (TeamMember user : members) { logger.debug("user = " + user); DetachedCriteria dcProjTeam = DetachedCriteria.forEntityName(IModelConstant.projectTeamEntity); dcProjTeam.add(Restrictions.eq("projectTeamId", user.getProjectTeamId())); dcProjTeam.add(Restrictions.ne("status", IConstant.NOM_PROJECT_TEAM_STATUS_DELETED)); projectTeams = getHibernateTemplate().findByCriteria(dcProjTeam); logger.debug("project teams = " + projectTeams); if (projectTeams != null && projectTeams.size() > 0) { for (ProjectTeam projectTeam : projectTeams) { logger.debug("project team = " + projectTeam); projectIds.add(projectTeam.getProjectId()); } } } if (projectTeams == null || projectTeams.size() == 0) { projectIds.add(new Integer(-1)); } } else { projectIds.add(new Integer(-1)); } logger.debug("projectIds = " + projectIds); DetachedCriteria dc1 = DetachedCriteria.forEntityName(IModelConstant.projectAllEntity); dc1.add(Expression.or(Expression.eq("managerId", personId), Restrictions.in("projectId", projectIds))); if (isFinishedAndAbandoned) { dc1.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); } else { dc1.add(Restrictions.eq("status", IConstant.NOM_PROJECT_STATUS_OPENED)); } List<Project> res = getHibernateTemplate().findByCriteria(dc1); if (res != null && res.size() > 0) { // for every project for (Project project : res) { logger.debug("project = " + project); Project projectNew = getWithAll(project.getProjectId()); projects.add(projectNew); } } logger.debug("getProjectsByPerson - END"); return projects; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Get the project for a certain manager * /* w w w . j av a 2 s . c om*/ * @author Adelina * * @param managerId * @return */ public List<Project> getProjectsByManager(Integer managerId, boolean isFinishedAndAbandoned) { logger.debug("getProjectsByManager - START"); List<Project> projects = new ArrayList<Project>(); DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectAllEntity); dc.add(Restrictions.eq("managerId", managerId)); if (isFinishedAndAbandoned) { dc.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); } else { dc.add(Restrictions.eq("status", IConstant.NOM_PROJECT_STATUS_OPENED)); } List<Project> res = getHibernateTemplate().findByCriteria(dc); if (res != null && res.size() > 0) { // for every project for (Project project : res) { Project projectNew = getWithAll(project.getProjectId()); projects.add(projectNew); } } logger.debug("getProjectsByManager - END"); return projects; }
From source file:ro.cs.cm.model.dao.impl.DaoProjectImpl.java
License:Open Source License
/** * Gets the projects whose project teams include the person with the specified id * //from w w w . ja v a 2 s . c o m * @author Coni * * @param personId * @return * @throws BusinessException */ public List<Project> getProjectsByTeamMember(Integer personId) { logger.debug("getProjectsByTeamMember - START"); List<Project> projects = null; DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.projectWithProjectTeamEntity); List<ProjectTeam> projectTeams = projectTeamDao.getByPerson(personId); if (projectTeams != null) { List<Integer> projectIds = new ArrayList<Integer>(); for (ProjectTeam projectTeam : projectTeams) { projectIds.add(new Integer(projectTeam.getProjectId())); } dc.add(Restrictions.in("projectId", projectIds)); dc.add(Restrictions.ne("status", IConstant.NOM_PROJECT_STATUS_DELETED)); projects = getHibernateTemplate().findByCriteria(dc); } logger.debug("getProjectsByTeamMember - END"); return projects; }