Example usage for org.hibernate.criterion DetachedCriteria forEntityName

List of usage examples for org.hibernate.criterion DetachedCriteria forEntityName

Introduction

In this page you can find the example usage for org.hibernate.criterion DetachedCriteria forEntityName.

Prototype

@SuppressWarnings("UnusedDeclaration")
public static DetachedCriteria forEntityName(String entityName) 

Source Link

Document

Static builder to create a DetachedCriteria for the given entity.

Usage

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Get the new external persons//from w ww.j  a  va 2 s .c om
 * 
 * @author Adelina
 * 
 * @return
 */
public List<TeamMember> getNewTeamMembersByProjectTeam(Integer projectTeamId) {
    logger.debug("getTeamMembersByProjectTeam - START");

    DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.teamMemberEntity);
    dc.add(Restrictions.eq("personId", new Integer(0)));
    dc.add(Restrictions.eq("projectTeamId", projectTeamId));
    dc.add(Restrictions.ne("status", IConstant.NOM_TEAM_MEMBER_STATUS_DELETED));
    List<TeamMember> members = getHibernateTemplate().findByCriteria(dc);

    logger.debug("getTeamMembersByProjectTeam - END");

    return members;
}

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Get team members from projects//  w ww. j  a v  a  2s  .com
 * 
 * @author Adelina
 * 
 * @param projectIds
 * @return
 */
public List<TeamMember> getTeamMembersByProjectIds(Set<Integer> projectIds, boolean isExternal,
        boolean isNotDeleted) {
    logger.debug("getTeamMembersByProjectIds - START");
    DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.teamMemberWithProjectTeamEntity);

    logger.debug("isExternal = " + isExternal);
    if (isExternal) {
        dc.add(Restrictions.eq("personId", new Integer(0)));
    }
    dc.createCriteria("projectTeam").add(Restrictions.in("projectId", projectIds));

    logger.debug("isNotDeleted = " + isNotDeleted);
    if (isNotDeleted) {
        dc.add(Restrictions.ne("status", IConstant.NOM_TEAM_MEMBER_STATUS_DELETED));
    }

    List<TeamMember> members = getHibernateTemplate().findByCriteria(dc);
    logger.debug("team members = " + members);

    List<TeamMember> teamMembers = new ArrayList<TeamMember>();
    if (members != null && members.size() > 0) {
        for (TeamMember teamMember : members) {
            logger.debug("team member = " + teamMember);
            boolean changeStatus = false;
            if (teamMember != null && teamMember.getPersonId() > 0) {
                try {
                    Person person = BLPerson.getInstance().get(teamMember.getPersonId());
                    logger.debug("person = " + person);
                    Byte activated = new Byte(IConstant.NOM_PERSON_STATUS_ACTIVATED);
                    if (person != null && !activated.equals(person.getStatus())) {
                        changeStatus = true;
                    }
                    if (!changeStatus) {
                        logger.debug("teamMember = " + teamMember);
                        teamMembers.add(teamMember);
                    } else {
                        if (person != null) {
                            changeStatus(teamMember, person.getStatus());
                        }
                    }
                } catch (BusinessException e) {
                    e.printStackTrace();
                }
            }
            if (!isNotDeleted) {
                teamMembers.add(teamMember);
            }
        }
    }

    Tools.getInstance().printList(logger, teamMembers);

    logger.debug("getTeamMembersByProjectIds - END");
    return teamMembers;
}

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Gets the list of team members for a person
 * @author Coni//ww w  . ja v a2  s  .  c  o  m
 * @param personId
 * @return
 */
public List<TeamMember> getByPersonId(Integer personId, boolean isNotDeleted) {
    logger.debug("getByPersonId - START");

    DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.teamMemberSimpleEntity);
    dc.add(Restrictions.eq("personId", personId));
    List<TeamMember> teamMembers = new ArrayList<TeamMember>();
    List<TeamMember> members = getHibernateTemplate().findByCriteria(dc);
    for (TeamMember member : members) {
        if (member.getStatus() == IConstant.NOM_TEAM_MEMBER_STATUS_DISABLED && member.getPersonId() > 0) {
            if (isNotDeleted) {
                boolean changeStatusToActivate = false;
                try {
                    Person person = BLPerson.getInstance().get(personId);
                    logger.debug("person = " + person);
                    Byte activated = new Byte(IConstant.NOM_PERSON_STATUS_ACTIVATED);
                    if (person != null && activated.equals(person.getStatus())) {
                        changeStatusToActivate = true;
                    }
                } catch (BusinessException e) {
                    e.printStackTrace();
                }
                if (changeStatusToActivate) {
                    changeStatusToOpen(member);
                    teamMembers.add(member);
                }
            } else {
                teamMembers.add(member);
            }
        } else {
            teamMembers.add(member);
        }
    }
    logger.debug("getByPersonId - END");
    return teamMembers;
}

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Gets team members by different search criteria
 * /*from w  w  w . j a va  2 s.c om*/
 * @author Coni
 * @param searchTeamMemberBean
 * @return
 * @throws BusinessException 
 * @throws WSClientException 
 * @throws IOException 
 * @throws XmlMappingException 
 */
public List<TeamMember> getFromSearchSimple(SearchTeamMemberBean searchTeamMemberBean)
        throws XmlMappingException, IOException, WSClientException {
    logger.debug("getFromSearchSimple - START");
    DetachedCriteria dc = DetachedCriteria
            .forEntityName(IModelConstant.teamMemberWithProjectTeamAndProjectEntity);

    //retrieve all the team members for persons from the organization(which have personId !=  0) or 
    //not(which have firstName and lastName) that correspond to the search criteria
    if (searchTeamMemberBean.getFirstName() != null && !"".equals(searchTeamMemberBean.getFirstName())
            && searchTeamMemberBean.getLastName() != null && !"".equals(searchTeamMemberBean.getLastName())) {
        dc.add(Restrictions.and(
                Restrictions.ilike("firstName", "%".concat(searchTeamMemberBean.getFirstName()).concat("%")),
                Restrictions.ilike("lastName", "%".concat(searchTeamMemberBean.getLastName()).concat("%"))));
    } else if (searchTeamMemberBean.getFirstName() != null && !"".equals(searchTeamMemberBean.getFirstName())) {
        dc.add(Restrictions.ilike("firstName", "%".concat(searchTeamMemberBean.getFirstName()).concat("%")));
    } else if (searchTeamMemberBean.getLastName() != null && !"".equals(searchTeamMemberBean.getLastName())) {
        dc.add(Restrictions.ilike("lastName", "%".concat(searchTeamMemberBean.getLastName()).concat("%")));
    }

    if (!searchTeamMemberBean.isWithDeleted()) {
        dc.add(Restrictions.eq("status", IConstant.NOM_TEAM_MEMBER_STATUS_ACTIVATED));
    }

    if (searchTeamMemberBean.getProjectId() != null) {
        //if a project is selected, the team members project team must correspond to that project
        dc.createCriteria("projectTeam").add(Restrictions.eq("projectId", searchTeamMemberBean.getProjectId()));
        if (!searchTeamMemberBean.isIncludeFinishedAndAbandonedProjects()) {
            dc.createCriteria("projectTeam").createCriteria("project")
                    .add(Restrictions.eq("status", IConstant.NOM_PROJECT_STATUS_OPENED));
        }
    }

    if (searchTeamMemberBean.getOrganizationId() != null) {
        dc.createCriteria("projectTeam").createCriteria("project")
                .add(Restrictions.eq("organizationId", searchTeamMemberBean.getOrganizationId()));
    }

    List<TeamMember> members = getHibernateTemplate().findByCriteria(dc);
    logger.debug("getFromSearchSimple - END");
    return members;
}

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Returns the active team members from a project team
 * //from  w  ww  .java  2s.  c  o m
 * @author Coni
 * @param projectTeamId
 * @return
 */
public List<TeamMember> getTeamMembersByProjectTeam(int projectTeamId) {
    logger.debug("getTeamMembersByProjectTeam - START");
    DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.teamMemberSimpleEntity);
    dc.add(Restrictions.eq("projectTeamId", projectTeamId));
    dc.add(Restrictions.ne("status", IConstant.NOM_TEAM_MEMBER_STATUS_DELETED));
    List<TeamMember> res = getHibernateTemplate().findByCriteria(dc);
    logger.debug("getTeamMembersByProjectTeam - START");
    return res;
}

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Get team member items identified by their ids
 * //  w  w w . j  av a 2 s .  c  o  m
 * @author Coni
 * 
 * @param memberIds
 * @return
 */
public List<TeamMember> getByMemberIds(Set<Integer> memberIds, boolean isNotDeleted) {
    logger.debug("getByMemberIds - START");
    DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.teamMemberSimpleEntity);
    dc.add(Restrictions.in("memberId", memberIds));
    if (isNotDeleted) {
        dc.add(Restrictions.ne("status", IConstant.NOM_TEAM_MEMBER_STATUS_DELETED));
    }
    List<TeamMember> res = getHibernateTemplate().findByCriteria(dc);
    logger.debug("getByMemberIds - START");
    return res;
}

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Get team member item identified by it's id with id and status if it is not delete
 * //  w w w  .j a v  a 2  s .co  m
 * @author Adelina
 * 
 * @param memberId
 * @return
 */
public TeamMember getSimpleByMemberId(Integer memberId) {
    logger.debug("getSimpleByMemberId - START ");
    DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.teamMemberForDeleteEntity);
    List<TeamMember> result = null;

    dc.add(Restrictions.eq("memberId", memberId));
    dc.add(Restrictions.ne("status", IConstant.NOM_TEAM_MEMBER_STATUS_DELETED));
    result = getHibernateTemplate().findByCriteria(dc);
    logger.debug("getSimpleByMemberId - END");

    if (result.size() > 0) {
        return result.get(0);
    } else {
        return null;
    }
}

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Get team member by personId and projectTeamId
 * //from  www  .j  a  v  a 2  s.c  o m
 * @author Adelina
 * 
 * @param personId
 * @param projectTeamId
 * @return
 */
public TeamMember getMember(Integer personId, Integer projectTeamId) {
    logger.debug("getByPersonId - START ");
    DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.teamMemberEntity);
    List<TeamMember> result = null;

    dc.add(Restrictions.eq("personId", personId));
    dc.add(Restrictions.eq("projectTeamId", projectTeamId));
    result = getHibernateTemplate().findByCriteria(dc);
    logger.debug("getByPersonId - END");

    if (result.size() > 0) {
        return result.get(0);
    } else {
        return null;
    }
}

From source file:ro.cs.cm.model.dao.impl.DaoTeamMemberImpl.java

License:Open Source License

/**
 * Retrieves from search a list of team members with basic info and pagination; search method
 * for TS person search//from  w  w w. j a va 2s.c  om
 * 
 * @author Coni
 * @param searchTeamMemberBean
 * @return
 * @throws WSClientException 
 * @throws IOException 
 * @throws XmlMappingException 
 * @throws BusinessException 
 */
public List<TeamMember> getFromSearchSimpleWithPagination(SearchTeamMemberBean searchTeamMemberBean)
        throws XmlMappingException, IOException, WSClientException, BusinessException {
    logger.debug("getFromSearchSimpleWithPagination - START");

    DetachedCriteria dc = DetachedCriteria
            .forEntityName(IModelConstant.teamMemberWithProjectTeamAndProjectEntity);
    DetachedCriteria dcCount = DetachedCriteria
            .forEntityName(IModelConstant.teamMemberWithProjectTeamAndProjectEntity);

    //retrieve all the team members for persons from the organization(which have personId !=  0) or 
    //not(which have firstName and lastName) that correspond to the search criteria
    if (searchTeamMemberBean.getFirstName() != null && !"".equals(searchTeamMemberBean.getFirstName())
            && searchTeamMemberBean.getLastName() != null && !"".equals(searchTeamMemberBean.getLastName())) {
        dc.add(Restrictions.and(
                Restrictions.ilike("firstName", "%".concat(searchTeamMemberBean.getFirstName()).concat("%")),
                Restrictions.ilike("lastName", "%".concat(searchTeamMemberBean.getLastName()).concat("%"))));
        dcCount.add(Restrictions.and(
                Restrictions.ilike("firstName", "%".concat(searchTeamMemberBean.getFirstName()).concat("%")),
                Restrictions.ilike("lastName", "%".concat(searchTeamMemberBean.getLastName()).concat("%"))));
    } else if (searchTeamMemberBean.getFirstName() != null && !"".equals(searchTeamMemberBean.getFirstName())) {
        dc.add(Restrictions.ilike("firstName", "%".concat(searchTeamMemberBean.getFirstName()).concat("%")));
        dcCount.add(
                Restrictions.ilike("firstName", "%".concat(searchTeamMemberBean.getFirstName()).concat("%")));
    } else if (searchTeamMemberBean.getLastName() != null && !"".equals(searchTeamMemberBean.getLastName())) {
        dc.add(Restrictions.ilike("lastName", "%".concat(searchTeamMemberBean.getLastName()).concat("%")));
        dcCount.add(Restrictions.ilike("lastName", "%".concat(searchTeamMemberBean.getLastName()).concat("%")));
    }

    if (!searchTeamMemberBean.isWithDeleted()) {
        dc.add(Restrictions.eq("status", IConstant.NOM_TEAM_MEMBER_STATUS_ACTIVATED));
        dcCount.add(Restrictions.eq("status", IConstant.NOM_TEAM_MEMBER_STATUS_ACTIVATED));
    }

    DetachedCriteria dcOnProject = dc.createCriteria("projectTeam").createCriteria("project");
    DetachedCriteria dcCountOnProject = dcCount.createCriteria("projectTeam").createCriteria("project");
    if (searchTeamMemberBean.getProjectId() != null && !searchTeamMemberBean.getProjectId()
            .equals(Integer.valueOf(IConstant.NOM_TS_PERSON_SEARCH_IN_ORGANIZATION))) {
        if (searchTeamMemberBean.getProjectId()
                .equals(Integer.valueOf(IConstant.NOM_TS_PERSON_SEARCH_ALL_PROJECTS))) {
            //if the used doesn't have the permission to search in all the projects for team members, 
            //the user must see all the persons from the projects where he is PM and only his person
            //for the projects where he isn't PM
            List<Project> userProjects = null;
            if (!searchTeamMemberBean.isHasPermissionToSeeAllProjects()) {
                if (!searchTeamMemberBean.isOnlyManager()) {
                    userProjects = BLProject.getInstance().getProjectsByPerson(
                            searchTeamMemberBean.getPersonId(),
                            searchTeamMemberBean.isIncludeFinishedAndAbandonedProjects());
                } else {
                    userProjects = BLProject.getInstance().getProjectsByManager(
                            searchTeamMemberBean.getPersonId(),
                            searchTeamMemberBean.isIncludeFinishedAndAbandonedProjects());
                }
            } else {
                userProjects = BLProject.getInstance().getAllProjects(searchTeamMemberBean.getOrganizationId(),
                        searchTeamMemberBean.isIncludeFinishedAndAbandonedProjects());
            }
            if (userProjects != null && !userProjects.isEmpty()) {
                List<Integer> projectIds = new ArrayList<Integer>();
                for (Project prj : userProjects) {
                    projectIds.add(prj.getProjectId());
                }
                dcOnProject.add(Restrictions.in("projectId", projectIds));
                dcCountOnProject.add(Restrictions.in("projectId", projectIds));
            } else {
                return new ArrayList<TeamMember>();
            }
        } else {
            //if a project is selected, the team members project team must correspond to that project
            dcOnProject.add(Restrictions.eq("projectId", searchTeamMemberBean.getProjectId()));
            dcCountOnProject.add(Restrictions.eq("projectId", searchTeamMemberBean.getProjectId()));
        }
    }

    if (searchTeamMemberBean.getOrganizationId() != null) {
        dcOnProject.add(Restrictions.eq("organizationId", searchTeamMemberBean.getOrganizationId()));
        dcCountOnProject.add(Restrictions.eq("organizationId", searchTeamMemberBean.getOrganizationId()));
    }

    // check if I have to order the results
    if (searchTeamMemberBean.getSortParam() != null
            && StringUtils.hasLength(searchTeamMemberBean.getSortParam())) {
        if (searchTeamMemberBean.getSortParam().equals("projectName")) {
            if (searchTeamMemberBean.getSortDirection() == IConstant.ASCENDING) {
                dcOnProject.addOrder(Order.asc("name"));
            } else {
                dcOnProject.addOrder(Order.desc("name"));
            }
        } else {
            // if I have to, check if I have to order them ascending or descending
            if (searchTeamMemberBean.getSortDirection() == IConstant.ASCENDING) {
                // ascending
                dc.addOrder(Order.asc(searchTeamMemberBean.getSortParam()));
            } else {
                // descending
                dc.addOrder(Order.desc(searchTeamMemberBean.getSortParam()));
            }
        }
    }

    // if the request didn't come from the pagination area, 
    // it means that I have to set the number of result and pages
    if (searchTeamMemberBean.getNbrOfResults() == -1) {
        // set the countDistinct restriction
        dcCount.setProjection(Projections.countDistinct("memberId"));

        int nbrOfResults = ((Integer) getHibernateTemplate().findByCriteria(dcCount, 0, 0).get(0)).intValue();
        searchTeamMemberBean.setNbrOfResults(nbrOfResults);
        logger.debug("NbrOfResults " + searchTeamMemberBean.getNbrOfResults());
        logger.debug("----> searchPersonBean.getResults " + searchTeamMemberBean.getResultsPerPage());
        // get the number of pages
        if (nbrOfResults % searchTeamMemberBean.getResultsPerPage() == 0) {
            searchTeamMemberBean.setNbrOfPages(nbrOfResults / searchTeamMemberBean.getResultsPerPage());
        } else {
            searchTeamMemberBean.setNbrOfPages(nbrOfResults / searchTeamMemberBean.getResultsPerPage() + 1);
        }
        searchTeamMemberBean.setCurrentPage(1);
    }

    List<TeamMember> res = getHibernateTemplate().findByCriteria(dc,
            (searchTeamMemberBean.getCurrentPage() - 1) * searchTeamMemberBean.getResultsPerPage(),
            searchTeamMemberBean.getResultsPerPage());

    logger.debug("getFromSearchSimpleWithPagination - END");
    return res;
}

From source file:ro.cs.logaudit.dao.impl.DaoAuditCmImpl.java

License:Open Source License

/**
 * Searches for audit after criterion from searchBean
 * /*from   w ww. j a v a  2s .  c om*/
 * @author Coni
 * 
 * @return A list of audit beans 
 * @throws ParseException 
 */
public List<AuditCmBean> getAuditBeanFromSearch(SearchAuditCmBean searchAuditCmBean, boolean isDeleteAction,
        Locale locale) throws ParseException {

    logger.debug("getAuditBeanFromSearch - START");

    // set search criterion
    DetachedCriteria dc = DetachedCriteria.forEntityName(IModelConstant.auditcmEntity);
    DetachedCriteria dcCount = DetachedCriteria.forEntityName(IModelConstant.auditcmEntity);

    if (searchAuditCmBean.getOrganisationId() != -1) {
        dc.add(Restrictions.eq("organisationId", searchAuditCmBean.getOrganisationId()));
        dcCount.add(Restrictions.eq("organisationId", searchAuditCmBean.getOrganisationId()));
    }

    if (searchAuditCmBean.getEvent() != null && !"-1".equals(searchAuditCmBean.getEvent())) {
        dc.add(Restrictions.ilike("event", "%".concat(searchAuditCmBean.getEvent()).concat("%")));
        dcCount.add(Restrictions.ilike("event", "%".concat(searchAuditCmBean.getEvent()).concat("%")));
    }
    if (searchAuditCmBean.getPersonId() != null && !"".equals(searchAuditCmBean.getPersonId())) {
        dc.add(Restrictions.eq("personId", searchAuditCmBean.getPersonId()));
        dcCount.add(Restrictions.eq("personId", searchAuditCmBean.getPersonId()));
    }
    if (searchAuditCmBean.getMessage() != null && !"".equals(searchAuditCmBean.getMessage())) {
        dc.add(Restrictions.ilike("message".concat(locale.toString().toUpperCase()),
                "%".concat(searchAuditCmBean.getMessage()).concat("%")));
        dcCount.add(Restrictions.ilike("message".concat(locale.toString().toUpperCase()),
                "%".concat(searchAuditCmBean.getMessage()).concat("%")));
    }

    if (searchAuditCmBean.getStartDate() != null) {
        dc.add(Expression.ge("date", searchAuditCmBean.getStartDate()));
        dcCount.add(Expression.ge("date", searchAuditCmBean.getStartDate()));
    }

    if (searchAuditCmBean.getEndDate() != null) {
        dc.add(Expression.le("date", searchAuditCmBean.getEndDate()));
        dcCount.add(Expression.le("date", searchAuditCmBean.getEndDate()));
    }

    // check if I have to order the results
    if (searchAuditCmBean.getSortParam() != null && !"".equals(searchAuditCmBean.getSortParam())) {
        // if I have to, check if I have to order them ascending or descending
        if (searchAuditCmBean.getSortDirection() == -1) {
            // ascending
            dc.addOrder(Order.asc(searchAuditCmBean.getSortParam()));
        } else {
            // descending
            dc.addOrder(Order.desc(searchAuditCmBean.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 || searchAuditCmBean.getNbrOfResults() == -1) {
        boolean isSearch = false;
        if (searchAuditCmBean.getNbrOfResults() == -1) {
            isSearch = true;
        }
        // set the count(*) restriction         
        dcCount.setProjection(Projections.countDistinct("auditId"));

        //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)));
        searchAuditCmBean.setNbrOfResults(nbrOfResults);

        // get the number of pages
        if (nbrOfResults % searchAuditCmBean.getResultsPerPage() == 0) {
            searchAuditCmBean.setNbrOfPages(nbrOfResults / searchAuditCmBean.getResultsPerPage());
        } else {
            searchAuditCmBean.setNbrOfPages(nbrOfResults / searchAuditCmBean.getResultsPerPage() + 1);
        }
        // after an audit is deleted, the same page has to be displayed;
        //only when all the audit events from last page are deleted, the previous page will be shown 
        if (isDeleteAction && (searchAuditCmBean.getCurrentPage() > searchAuditCmBean.getNbrOfPages())) {
            searchAuditCmBean.setCurrentPage(searchAuditCmBean.getNbrOfPages());
        } else if (isSearch) {
            searchAuditCmBean.setCurrentPage(1);
        }

    }

    List<AuditCmBean> res = (List<AuditCmBean>) getHibernateTemplate().findByCriteria(dc,
            (searchAuditCmBean.getCurrentPage() - 1) * searchAuditCmBean.getResultsPerPage(),
            searchAuditCmBean.getResultsPerPage());
    logger.debug("getAuditBeanFromSearch - END results size : ".concat(String.valueOf(res.size())));
    return res;
}