Example usage for org.hibernate.criterion Restrictions in

List of usage examples for org.hibernate.criterion Restrictions in

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions in.

Prototype

public static Criterion in(String propertyName, Collection values) 

Source Link

Document

Apply an "in" constraint to the named property.

Usage

From source file:co.id.pegadaian.pasg2.util.SusunTreeJeasyUI.java

public Set<BigDecimal> listMenuByUser(Session session, String userId) {
    /* Ambil gropu by user */
    Criteria critGroup = session.createCriteria(TblUserGroup.class);
    critGroup.add(Restrictions.eq("id.userId", userId));
    critGroup.setProjection(Projections.projectionList().add(Projections.property("id.groupId")));//"id.groupId"
    List<BigDecimal> l = critGroup.list();
    if (l.size() > 0) {
        /*Menu berdasarkan Priviledge */
        Criteria c = session.createCriteria(TblPriviledge.class);
        c.add(Restrictions.in("id.groupId", l));
        c.setProjection(Projections.projectionList().add(Projections.property("id.menuId")));
        Set<BigDecimal> lMenuId = new HashSet();
        List<BigDecimal> k = c.list();
        for (BigDecimal x : k) {
            lMenuId.add(x);//new BigDecimal(x));
        }//from w  w  w .  jav  a2  s. c  om
        return lMenuId;
    } else {
        return null;
    }

}

From source file:com.abiquo.abiserver.commands.impl.InfrastructureCommandImpl.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public DataResult<ArrayList<VirtualMachine>> checkVirtualMachinesState(
        final ArrayList<VirtualMachine> virtualMachinesToCheck) {
    DataResult<ArrayList<VirtualMachine>> dataResult = new DataResult<ArrayList<VirtualMachine>>();
    ArrayList<VirtualMachine> virtualMachinesChecked = new ArrayList<VirtualMachine>();

    Session session = null;/*  w w w  .  j ava  2s  .c  o m*/
    Transaction transaction = null;

    try {
        session = HibernateUtil.getSession();
        transaction = session.beginTransaction();

        // Generating the list of id's of the virtual machines requested
        ArrayList<Integer> virtualMachinesToCheckIds = new ArrayList<Integer>();
        for (VirtualMachine virtualMachine : virtualMachinesToCheck) {
            virtualMachinesToCheckIds.add(virtualMachine.getId());
        }

        // Getting the virtual machines updated from the data base
        ArrayList<VirtualmachineHB> virtualMachinesHBChecked = (ArrayList<VirtualmachineHB>) session
                .createCriteria(VirtualmachineHB.class).add(Restrictions.in("idVm", virtualMachinesToCheckIds))
                .list();

        // Returning the result
        for (VirtualmachineHB virtualMachineHB : virtualMachinesHBChecked) {
            virtualMachinesChecked.add(virtualMachineHB.toPojo());
        }

        transaction.commit();

        dataResult.setSuccess(true);
        dataResult.setMessage(resourceManager.getMessage("checkVirtualMachinesState.success"));
        dataResult.setData(virtualMachinesChecked);
    } catch (Exception e) {
        if (transaction != null && transaction.isActive()) {
            transaction.rollback();
        }

        errorManager.reportError(resourceManager, dataResult, "checkVirtualMachinesState", e);

    }

    return dataResult;
}

From source file:com.abiquo.abiserver.commands.InfrastructureCommand.java

License:Mozilla Public License

/**
 * Checks the current state of a list of virtual machines
 * //from w w  w.  j ava  2 s  . c  o m
 * @param virtualMachinesToCheck ArrayList with the list of virtual machines to check
 * @return A DataResult object containing a list of the same virtual machines with their state
 *         updated
 */
@SuppressWarnings("unchecked")
protected DataResult<ArrayList<VirtualMachine>> checkVirtualMachinesState(
        ArrayList<VirtualMachine> virtualMachinesToCheck) {
    DataResult<ArrayList<VirtualMachine>> dataResult = new DataResult<ArrayList<VirtualMachine>>();
    ArrayList<VirtualMachine> virtualMachinesChecked = new ArrayList<VirtualMachine>();

    Session session = null;
    Transaction transaction = null;

    try {
        session = HibernateUtil.getSession();
        transaction = session.beginTransaction();

        // Generating the list of id's of the virtual machines requested
        ArrayList<Integer> virtualMachinesToCheckIds = new ArrayList<Integer>();
        for (VirtualMachine virtualMachine : virtualMachinesToCheck) {
            virtualMachinesToCheckIds.add(virtualMachine.getId());
        }

        // Getting the virtual machines updated from the data base
        ArrayList<VirtualmachineHB> virtualMachinesHBChecked = (ArrayList<VirtualmachineHB>) session
                .createCriteria(VirtualmachineHB.class).add(Restrictions.in("idVm", virtualMachinesToCheckIds))
                .list();

        // Returning the result
        for (VirtualmachineHB virtualMachineHB : virtualMachinesHBChecked) {
            virtualMachinesChecked.add((VirtualMachine) virtualMachineHB.toPojo());
        }

        transaction.commit();

        dataResult.setSuccess(true);
        dataResult.setMessage(resourceManager.getMessage("checkVirtualMachinesState.success"));
        dataResult.setData(virtualMachinesChecked);
    } catch (Exception e) {
        if (transaction != null && transaction.isActive())
            transaction.rollback();

        this.errorManager.reportError(resourceManager, dataResult, "checkVirtualMachinesState", e);
    }

    return dataResult;
}

From source file:com.abiquo.abiserver.commands.UserCommand.java

License:Mozilla Public License

/**
 * Returns a list of users stored in the Data Base
 * //from  www.  ja  v  a2s. c om
 * @param userSession
 * @param userListOptions an UserListOptions object containing the options to retrieve the list
 *            of users
 * @return A DataResult object containing an UserListResult object with an ArrayList of User and
 *         the number of total users
 */
@SuppressWarnings("unchecked")
protected DataResult<UserListResult> getUsers(UserSession userSession, UserListOptions userListOptions) {
    DataResult<UserListResult> dataResult = new DataResult<UserListResult>();
    UserListResult userListResult = new UserListResult();

    Session session = null;
    Transaction transaction = null;

    try {
        session = HibernateUtil.getSession();
        transaction = session.beginTransaction();

        // Getting the user that called this method
        UserHB userHB = (UserHB) session.createCriteria(UserHB.class)
                .add(Restrictions.eq("user", userSession.getUser())).uniqueResult();

        // getUsers has two different authorization resources
        // If the user who called this method, does not match the security level for the
        // authorization resource
        // USER_GET_ALL_USERS, this method will only return those users who belongs to the same
        // enterprise than
        // the user that called this method

        // Getting the authorization resource USER_GET_ALL_USERS
        AuthResourceHB authResourceHB = (AuthResourceHB) session.createCriteria(AuthResourceHB.class)
                .add(Restrictions.eq("name", "USER_GET_ALL_USERS")).uniqueResult();

        // Checking if the user has not the necessary security level to see the whole list of
        // Users. If so, we force
        // the userListOptions object to filter by the enterprise assigned to the user
        if (authResourceHB.getRoleHB().getSecurityLevel()
                .compareTo(userHB.getRoleHB().getSecurityLevel()) == -1) {
            // NOT GRANTED!
            userListOptions.setByEnterprise((Enterprise) userHB.getEnterpriseHB().toPojo());
        }

        // Creating users criteria
        Criteria usersListCriteria = session.createCriteria(UserHB.class);
        Criteria usersCountCriteria = session.createCriteria(UserHB.class);

        // Removing the users that are deleted
        usersListCriteria.add(Restrictions.eq("deleted", 0));
        usersCountCriteria.add(Restrictions.eq("deleted", 0));

        // Adding filter by name, surname or email
        Disjunction filterDisjunction = Restrictions.disjunction();
        if (userListOptions.getFilter().length() > 0) {
            filterDisjunction.add(Restrictions.like("name", '%' + userListOptions.getFilter() + '%'));
            filterDisjunction.add(Restrictions.like("surname", '%' + userListOptions.getFilter() + '%'));
            filterDisjunction.add(Restrictions.like("email", '%' + userListOptions.getFilter() + '%'));
        }
        usersListCriteria.add(filterDisjunction);
        usersCountCriteria.add(filterDisjunction);

        // Adding filter by Enterprise
        if (userListOptions.getByEnterprise() != null) {
            usersListCriteria.add(Restrictions.eq("enterpriseHB",
                    (EnterpriseHB) userListOptions.getByEnterprise().toPojoHB()));
            usersCountCriteria.add(Restrictions.eq("enterpriseHB",
                    (EnterpriseHB) userListOptions.getByEnterprise().toPojoHB()));
        }

        // Adding order
        // Little fix to match the object used in Hibernate
        if (userListOptions.getOrderBy().compareTo("role") == 0)
            userListOptions.setOrderBy("roleHB");

        Order order;
        if (userListOptions.getAsc())
            order = Order.asc(userListOptions.getOrderBy());
        else
            order = Order.desc(userListOptions.getOrderBy());

        usersListCriteria.addOrder(order);
        usersCountCriteria.addOrder(order);

        // Adding filter to get only the users that currently have an active session
        if (userListOptions.getLoggedOnly()) {
            ArrayList<String> currentLoggedUsers = (ArrayList<String>) session
                    .createSQLQuery("SELECT user FROM session WHERE expireDate > CURRENT_TIMESTAMP()").list();
            usersListCriteria.add(Restrictions.in("user", currentLoggedUsers));
            usersCountCriteria.add(Restrictions.in("user", currentLoggedUsers));
        }

        // Once we have the criteria...
        // 1. Getting the total number of users that match userListOptions
        Integer totalUsers = (Integer) usersCountCriteria.setProjection(Projections.rowCount()).uniqueResult();

        // 2. Getting the list of users, applying an offset and a max of results
        ArrayList<UserHB> usersHB = (ArrayList<UserHB>) usersListCriteria
                .setFirstResult(userListOptions.getOffset()).setMaxResults(userListOptions.getLength()).list();

        // Building result
        ArrayList<User> usersList = new ArrayList<User>();
        for (UserHB userToReturnHB : usersHB) {
            usersList.add((User) userToReturnHB.toPojo());
        }

        userListResult.setTotalUsers(totalUsers);
        userListResult.setUsersList(usersList);

        transaction.commit();
    } catch (Exception e) {
        if (transaction != null && transaction.isActive())
            transaction.rollback();

        this.errorManager.reportError(resourceManager, dataResult, "getUsers", e);

        return dataResult;
    }

    dataResult.setData(userListResult);
    dataResult.setSuccess(true);
    dataResult.setMessage(UserCommand.resourceManager.getMessage("getUsers.success"));

    return dataResult;
}

From source file:com.abiquo.server.core.appslibrary.VirtualImageConversionDAO.java

License:Open Source License

private static Criterion targetFormatIn(final Collection<DiskFormatType> formats) {
    return Restrictions.in(VirtualImageConversion.TARGET_TYPE_PROPERTY, formats);
}

From source file:com.abiquo.server.core.appslibrary.VirtualImageConversionDAO.java

License:Open Source License

private static Criterion targetFormatIn(final DiskFormatType format) {
    return Restrictions.in(VirtualImageConversion.TARGET_TYPE_PROPERTY, Collections.singletonList(format));
}

From source file:com.abiquo.server.core.appslibrary.VirtualMachineTemplateDAO.java

License:Open Source License

/** Virtual Machine Template is compatible. */
private Criterion compatible(final Collection<DiskFormatType> types) {
    return Restrictions.in(VirtualMachineTemplate.DISKFORMAT_TYPE_PROPERTY, types);
}

From source file:com.abiquo.server.core.appslibrary.VirtualMachineTemplateDAO.java

License:Open Source License

/**
 * If (finished) conversions check some compatible. Left join to {@link VirtualImageConversion}
 *///  w w w . j  av a  2 s .co  m
private Criterion compatibleConversions(final Collection<DiskFormatType> types, final Criteria criteria) {
    criteria.createAlias(VirtualMachineTemplate.CONVERSIONS_PROPERTY, "conversions",
            JoinFragment.LEFT_OUTER_JOIN);

    Criterion finished = Restrictions.eq("conversions." + VirtualImageConversion.STATE_PROPERTY,
            ConversionState.FINISHED);

    Criterion compatible = Restrictions.in("conversions." + VirtualImageConversion.TARGET_TYPE_PROPERTY, types);

    return Restrictions.and(finished, compatible);
}

From source file:com.abiquo.server.core.cloud.VirtualApplianceDAO.java

License:Open Source License

/**
 * @param user, only users with restricted VDCs. If no restricted then use user = null
 *///from w w  w . j a  va2 s  . c om
public List<VirtualAppliance> findByEnterprise(final Enterprise enterprise, final FilterOptions filterOptions,
        final User user) {
    if (filterOptions == null) {
        return findByEnterprise(enterprise);
    }

    // Check if the orderBy element is actually one of the available ones
    VirtualAppliance.OrderByEnum orderByEnum = VirtualAppliance.OrderByEnum
            .valueOf(filterOptions.getOrderBy().toUpperCase());

    Integer limit = filterOptions.getLimit();
    Integer startwith = filterOptions.getStartwith();
    String filter = filterOptions.getFilter();
    boolean asc = filterOptions.getAsc();

    Criteria criteria = createCriteria(enterprise, filter, orderByEnum, asc);

    // Check if the page requested is bigger than the last one
    Long total = count(criteria);
    criteria = createCriteria(enterprise, filter, orderByEnum, asc);
    Integer totalResults = total.intValue();
    limit = limit != 0 ? limit : totalResults;
    if (limit != null) {
        criteria.setMaxResults(limit);
    }

    if (startwith >= totalResults) {
        startwith = totalResults - limit;
    }
    criteria.setFirstResult(startwith);
    criteria.setMaxResults(limit);

    if (user != null) {
        criteria.createAlias(VirtualAppliance.VIRTUAL_DATACENTER_PROPERTY, "virtualdatacenter");
        criteria.add(
                Restrictions.in("virtualdatacenter." + PersistentEntity.ID_PROPERTY, availableVdsToUser(user)));
    }

    List<VirtualAppliance> result = getResultList(criteria);

    PagedList<VirtualAppliance> page = new PagedList<VirtualAppliance>();
    page.addAll(result);
    page.setCurrentElement(startwith);
    page.setPageSize(limit);
    page.setTotalResults(totalResults);

    return page;
}

From source file:com.abiquo.server.core.cloud.VirtualDatacenterDAO.java

License:Open Source License

private static Criterion availableToUser(final User user) {
    Collection<String> idsStrings = Arrays.asList(user.getAvailableVirtualDatacenters().split(","));

    Collection<Integer> ids = CollectionUtils.collect(idsStrings, new Transformer() {
        @Override/*w w  w .  ja va2s .co m*/
        public Object transform(final Object input) {
            return Integer.valueOf(input.toString());
        }
    });

    return Restrictions.in(PersistentEntity.ID_PROPERTY, ids);
}