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:com.duroty.application.mail.manager.MailManager.java

License:Open Source License

/**
 * DOCUMENT ME!// ww  w . j  a  va  2s .c o m
 *
 * @param hsession DOCUMENT ME!
 * @param repositoryName DOCUMENT ME!
 * @param folderName DOCUMENT ME!
 * @param page DOCUMENT ME!
 * @param messagesByPage DOCUMENT ME!
 * @param order DOCUMENT ME!
 * @param orderType DOCUMENT ME!
 *
 * @return DOCUMENT ME!
 *
 * @throws MailException DOCUMENT ME!
 */
public Vector getMessages(Session hsession, String repositoryName, String folderName, int page,
        int messagesByPage, int order, String orderType) throws MailException {
    Vector messages = new Vector();

    try {
        Users user = getUser(hsession, repositoryName);
        Locale locale = new Locale(user.getUseLanguage());
        TimeZone timeZone = TimeZone.getDefault();

        Date now = new Date();
        Calendar calendar = Calendar.getInstance(timeZone, locale);
        calendar.setTime(now);

        SimpleDateFormat formatter1 = new SimpleDateFormat("MMM dd", locale);
        SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss", locale);
        SimpleDateFormat formatter3 = new SimpleDateFormat("MM/yy", locale);

        Criteria crit = hsession.createCriteria(Message.class);
        crit.add(Restrictions.eq("users", user));

        if (folderName.equals(this.folderAll) || folderName.equals(this.folderHidden)) {
            crit.add(Restrictions.not(Restrictions.in("mesBox",
                    new String[] { this.folderTrash, this.folderSpam, this.folderChat, FOLDER_DELETE })));
        } else if (folderName.equals(this.folderImportant)) {
            crit.add(Restrictions.eq("mesFlagged", new Boolean(true)));
        } else {
            crit.add(Restrictions.eq("mesBox", folderName));
        }

        switch (order) {
        case ORDER_BY_IMPORTANT:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesFlagged"));
            } else {
                crit.addOrder(Order.desc("mesFlagged"));
            }

            break;

        case ORDER_BY_ADDRESS:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesFrom"));
            } else {
                crit.addOrder(Order.desc("mesFrom"));
            }

            break;

        case ORDER_BY_SIZE:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesSize"));
            } else {
                crit.addOrder(Order.desc("mesSize"));
            }

            break;

        case ORDER_BY_SUBJECT:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesSubject"));
            } else {
                crit.addOrder(Order.desc("mesSubject"));
            }

            break;

        case ORDER_BY_DATE:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesDate"));
            } else {
                crit.addOrder(Order.desc("mesDate"));
            }

            break;

        case ORDER_BY_UNREAD:

            if (orderType.equals("ASC")) {
                crit.addOrder(Order.asc("mesRecent"));
            } else {
                crit.addOrder(Order.desc("mesRecent"));
            }

            break;

        default:
            crit.addOrder(Order.desc("mesDate"));

            break;
        }

        crit.setFirstResult(page * messagesByPage);
        crit.setMaxResults(messagesByPage);

        ScrollableResults scroll = crit.scroll();

        while (scroll.next()) {
            Message message = (Message) scroll.get(0);

            MessageObj obj = new MessageObj(message.getMesName());

            obj.setBox(message.getMesBox());

            obj.setFrom(message.getMesFrom());

            if ((message.getAttachments() != null) && (message.getAttachments().size() > 0)) {
                obj.setHasAttachment(true);
            } else {
                obj.setHasAttachment(false);
            }

            int size = message.getMesSize();
            size /= 1024;

            if (size > 1024) {
                size /= 1024;
                obj.setSize(size + " MB");
            } else {
                obj.setSize(((size > 0) ? (size + "") : "<1") + " kB");
            }

            if (message.getMesBox().equals(folderSent)) {
                try {
                    obj.setEmail(message.getMesTo());
                } catch (Exception e) {
                    obj.setEmail("unknown to");
                }
            } else {
                obj.setEmail(message.getMesFrom());
            }

            Date date = message.getMesDate();

            if (date != null) {
                Calendar calendar2 = Calendar.getInstance(timeZone, locale);
                calendar2.setTime(date);

                if ((calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR))
                        && (calendar.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH))
                        && (calendar.get(Calendar.DATE) == calendar2.get(Calendar.DATE))) {
                    obj.setDateStr(formatter2.format(calendar2.getTime()));
                } else if (calendar.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR)) {
                    obj.setDateStr(formatter1.format(calendar2.getTime()));
                } else {
                    obj.setDateStr(formatter3.format(calendar2.getTime()));
                }
            }

            obj.setDate(date);

            if (message.getLabMeses() != null) {
                Iterator it = message.getLabMeses().iterator();
                StringBuffer label = new StringBuffer();

                while (it.hasNext()) {
                    if (label.length() > 0) {
                        label.append(", ");
                    }

                    LabMes labMes = (LabMes) it.next();
                    label.append(labMes.getId().getLabel().getLabName());
                }

                obj.setLabel(label.toString());
            }

            try {
                if (StringUtils.isBlank(message.getMesSubject())) {
                    obj.setSubject("(no subject)");
                } else {
                    obj.setSubject(message.getMesSubject());
                }
            } catch (Exception ex) {
                obj.setSubject("(no subject)");
            }

            if (message.isMesFlagged()) {
                obj.setFlagged(true);
            } else {
                obj.setFlagged(false);
            }

            if (message.isMesRecent()) {
                obj.setRecent(true);
            } else {
                obj.setRecent(false);
            }

            String priority = "normal";

            if (MessageUtilities.isHighPriority(message.getMesHeaders())) {
                priority = "high";
            } else if (MessageUtilities.isLowPriority(message.getMesHeaders())) {
                priority = "low";
            }

            obj.setPriority(priority);

            messages.addElement(obj);
        }

        return messages;
    } catch (Exception e) {
        throw new MailException(e);
    } finally {
        GeneralOperations.closeHibernateSession(hsession);
    }
}

From source file:com.duroty.application.mail.manager.MailManager.java

License:Open Source License

/**
 * DOCUMENT ME!/*  w  w w .j a  v a 2s  .c  o m*/
 *
 * @param hsession DOCUMENT ME!
 * @param repositoryName DOCUMENT ME!
 * @param mids DOCUMENT ME!
 * @param folder DOCUMENT ME!
 *
 * @throws MailException DOCUMENT ME!
 */
public void moveMessages(Session hsession, String repositoryName, String[] mids, String folder)
        throws MailException {
    if ((mids == null) || (mids.length == 0)) {
        throw new MailException("ErrorMessages.messages.selection.null");
    }

    try {
        folder = parseFolder(folder);

        if (folder.equals(this.folderAll)) {
            folder = this.folderHidden;
        }

        Criteria crit = hsession.createCriteria(Message.class);
        crit.add(Restrictions.in("mesName", mids));
        crit.add(Restrictions.eq("users", getUser(hsession, repositoryName)));

        ScrollableResults scroll = crit.scroll();

        while (scroll.next()) {
            Message message = (Message) scroll.get(0);

            message.setMesBox(folder);

            hsession.update(message);
            hsession.flush();
        }
    } catch (Exception ex) {
        throw new MailException(ex);
    } finally {
        GeneralOperations.closeHibernateSession(hsession);
    }
}

From source file:com.duroty.application.mail.manager.PreferencesManager.java

License:Open Source License

/**
 * DOCUMENT ME!//w ww  .  ja v a 2s  .  co  m
 *
 * @param hsession DOCUMENT ME!
 * @param repositoryName DOCUMENT ME!
 * @param idints DOCUMENT ME!
 *
 * @throws Exception DOCUMENT ME!
 */
public void deleteContacts(Session hsession, String repositoryName, Integer[] idints) throws Exception {
    try {
        Users user = getUser(hsession, repositoryName);
        Criteria crit = hsession.createCriteria(Contact.class);
        crit.add(Restrictions.eq("users", user));
        crit.add(Restrictions.in("conIdint", idints));

        ScrollableResults scroll = crit.scroll();

        while (scroll.next()) {
            Contact contact = (Contact) scroll.get(0);

            Criteria crit1 = hsession.createCriteria(Identity.class);
            crit1.add(Restrictions.eq("ideEmail", contact.getConEmail()));
            crit1.add(Restrictions.eq("ideActive", new Boolean(true)));

            ScrollableResults scroll2 = crit1.scroll();

            while (scroll2.next()) {
                Identity identity = (Identity) scroll2.get(0);
                Users buddy = identity.getUsers();

                if (buddy != null) {
                    Criteria auxCrit = hsession.createCriteria(BuddyList.class);
                    auxCrit.add(Restrictions.eq("usersByBuliOwnerIdint", user));
                    auxCrit.add(Restrictions.eq("usersByBuliBuddyIdint", buddy));

                    BuddyList buddyList = (BuddyList) auxCrit.uniqueResult();

                    if (buddyList != null) {
                        hsession.delete(buddyList);
                        hsession.flush();
                    }

                    auxCrit = hsession.createCriteria(BuddyList.class);
                    auxCrit.add(Restrictions.eq("usersByBuliOwnerIdint", buddy));
                    auxCrit.add(Restrictions.eq("usersByBuliBuddyIdint", user));

                    buddyList = (BuddyList) auxCrit.uniqueResult();

                    if (buddyList != null) {
                        hsession.delete(buddyList);
                        hsession.flush();
                    }
                }
            }

            hsession.delete(contact);
            hsession.flush();
        }
    } finally {
        GeneralOperations.closeHibernateSession(hsession);
    }
}

From source file:com.duroty.application.mail.manager.PreferencesManager.java

License:Open Source License

/**
 * DOCUMENT ME!//from w  w  w. ja  va2 s .c  om
 *
 * @param hsession DOCUMENT ME!
 * @param repositoryName DOCUMENT ME!
 * @param idints DOCUMENT ME!
 *
 * @throws Exception DOCUMENT ME!
 */
public void deleteGroups(Session hsession, String repositoryName, Integer[] idints) throws Exception {
    try {
        Criteria crit = hsession.createCriteria(ContactList.class);
        crit.add(Restrictions.eq("users", getUser(hsession, repositoryName)));
        crit.add(Restrictions.in("coliIdint", idints));

        ScrollableResults scroll = crit.scroll();

        while (scroll.next()) {
            hsession.delete(scroll.get(0));
            hsession.flush();
        }
    } finally {
        GeneralOperations.closeHibernateSession(hsession);
    }
}

From source file:com.duroty.task.PurgeTrashAndSpam.java

License:Open Source License

/**
 * DOCUMENT ME!// w  w  w  .j  ava  2 s . c  o  m
 */
private void flush() {
    setInit(true);

    SessionFactory hfactory = null;
    Session hsession = null;

    try {
        hfactory = (SessionFactory) ctx.lookup(hibernateSessionFactory);
        hsession = hfactory.openSession();

        Calendar cal = new GregorianCalendar();
        int year = cal.get(Calendar.YEAR); // 2002
        int month = cal.get(Calendar.MONTH); // 0=Jan, 1=Feb, ...
        int day = cal.get(Calendar.DAY_OF_MONTH); // 1...

        Calendar cal1 = new GregorianCalendar(year, month - 1, day, 0, 0, 0);
        Date date = new Date(cal1.getTimeInMillis());

        Criteria criteria = hsession.createCriteria(Message.class);
        criteria.add(Restrictions.in("mesBox", new String[] { this.folderSpam, this.folderTrash }));
        criteria.add(Restrictions.le("mesDate", date));
        criteria.addOrder(Order.asc("mesDate"));

        ScrollableResults scroll = criteria.scroll();

        while (scroll.next()) {
            Message message = (Message) scroll.get(0);

            Users user = message.getUsers();

            try {
                messageable.deleteMimeMessage(message.getMesName(), user);
            } catch (Exception e) {
                DLog.log(DLog.INFO, this.getClass(), e.getMessage() + " for user " + user.getUseUsername());
            }

            hsession.delete(message);

            hsession.flush();

            Thread.sleep(100);
        }
    } catch (Exception e) {
        System.gc();
        DLog.log(DLog.WARN, this.getClass(), e.getMessage());
    } catch (OutOfMemoryError e) {
        System.gc();
        DLog.log(DLog.WARN, this.getClass(), e.getMessage());
    } catch (Throwable e) {
        System.gc();
        DLog.log(DLog.WARN, this.getClass(), e.getMessage());
    } finally {
        GeneralOperations.closeHibernateSession(hsession);
        setInit(false);
    }
}

From source file:com.eharmony.matching.seeking.translator.hibernate.HibernateQueryTranslator.java

License:Apache License

@Override
public Criterion in(String fieldName, Object[] values) {
    return Restrictions.in(fieldName, values);
}

From source file:com.eharmony.matching.seeking.translator.hibernate.HibernateQueryTranslator.java

License:Apache License

@Override
public Criterion notIn(String fieldName, Object[] values) {
    return Restrictions.not(Restrictions.in(fieldName, values));
}

From source file:com.ejushang.steward.common.genericdao.dao.hibernate.HibernateBaseDAO.java

License:Apache License

/**
 * Remove all the entities of the given type from the datastore that have
 * one of these ids./*from  ww  w.  j  a v  a 2s.c  o m*/
 */
protected void _deleteById(Class<?> type, Serializable... ids) {
    type = metadataUtil.getUnproxiedClass(type); //Get the real entity class
    Criteria c = getSession().createCriteria(type);
    c.add(Restrictions.in("id", ids));
    for (Object entity : c.list()) {
        getSession().delete(entity);
    }
}

From source file:com.ejushang.steward.common.genericdao.dao.hibernate.HibernateBaseDAO.java

License:Apache License

/**
 * <p>//from   w ww.j  a v a2 s.c o  m
 * Return the all the persistent instances of the given entity class with
 * the given identifiers. An array of entities is returned that matches the
 * same order of the ids listed in the call. For each entity that is not
 * found in the datastore, a null will be inserted in its place in the
 * return array.
 * 
 * <p>
 * <code>get()</code> always hits the database immediately.
 */
protected <T> T[] _get(Class<T> type, Serializable... ids) {
    type = metadataUtil.getUnproxiedClass(type); //Get the real entity class
    Criteria c = getSession().createCriteria(type);
    c.add(Restrictions.in("id", ids));
    Object[] retVal = (Object[]) Array.newInstance(type, ids.length);

    for (Object entity : c.list()) {
        Serializable id = getMetadataUtil().getId(entity);
        for (int i = 0; i < ids.length; i++) {
            if (id.equals(ids[i])) {
                retVal[i] = entity;
                break;
            }
        }
    }

    return (T[]) retVal;
}

From source file:com.emergya.persistenceGeo.dao.impl.AuthorityEntityDaoHibernateImpl.java

License:Open Source License

public List<AbstractAuthorityEntity> findByName(List<String> names) {
    return findByCriteria(Restrictions.in(AUTHORITY, names));
}