Example usage for org.hibernate.criterion DetachedCriteria createCriteria

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

Introduction

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

Prototype

public DetachedCriteria createCriteria(String associationPath) 

Source Link

Document

Creates a nested DetachedCriteria representing the association path.

Usage

From source file:core.commonapp.server.dao.party.PersonDaoHibernateImpl.java

License:Open Source License

@Override
@Transactional//from  www  . ja  v a 2s. c o  m
public Set<Party> findContactPerson(String partyName, PhoneNumber phoneNumber, PostalAddress postalAddress,
        String emailAddress, UserLogin userLogin) {
    log.debug("PersonDaoHibernateImpl.findContactPerson({0},{1},{2},{3},{4},{5})", partyName, phoneNumber,
            postalAddress, emailAddress, userLogin);
    DetachedCriteria partyCriteria = DetachedCriteria.forClass(Person.class);

    // relationship to user
    DetachedCriteria relationshipFromCriteria = partyCriteria.createCriteria("partyToRelationships");
    relationshipFromCriteria.add(Restrictions.eq("partyFrom", userLogin.getParty()));

    // party name
    if (!StringUtils.isEmpty(partyName)) {
        int comma = partyName.indexOf(",");
        if (comma > 0) {
            partyCriteria.add(Restrictions.eq("lastName", partyName.substring(0, comma).trim()));
            partyCriteria.add(Restrictions.eq("firstName", partyName.substring(comma + 1).trim()));
        } else {
            partyCriteria.add(Restrictions.eq("lastName", partyName.trim()));
        }
    }

    // contact mech type cache
    KeyedCacheStore<ContactMechType> contactMechTypeCache = cache.getCacheStore(ContactMechType.class);

    // email address
    if (!StringUtils.isEmpty(emailAddress)) {
        DetachedCriteria partyContactMechCriteria = partyCriteria.createCriteria("partyContactMechs");
        DetachedCriteria contactMechCriteria = partyContactMechCriteria.createCriteria("contactMech");
        contactMechCriteria.add(Restrictions.eq("contactMechType.contactMechTypeId",
                contactMechTypeCache.getObject(ContactMechTypeKey.KEY_EMAIL_ADDRESS).getId()));
        contactMechCriteria.add(Restrictions.eq("emailAddress", emailAddress));
    }

    // phone number
    PhoneNumberHelper phoneNumberHelper = new PhoneNumberHelper(phoneNumber);
    if (phoneNumber != null && !phoneNumberHelper.isEmpty()) {
        DetachedCriteria partyContactMechCriteria = partyCriteria.createCriteria("partyContactMechs");
        DetachedCriteria contactMechCriteria = partyContactMechCriteria.createCriteria("contactMech");
        contactMechCriteria.add(Restrictions.eq("contactMechType.contactMechTypeId",
                contactMechTypeCache.getObject(ContactMechTypeKey.KEY_PHONE_NUMBER).getId()));
        addRestrictionIfNotEmpty(contactMechCriteria, "countryCode", phoneNumber.getCountryCode());
        addRestrictionIfNotEmpty(contactMechCriteria, "areaCode", phoneNumber.getAreaCode());
        addRestrictionIfNotEmpty(contactMechCriteria, "contactNumber", phoneNumber.getContactNumber());
        addRestrictionIfNotEmpty(contactMechCriteria, "extension", phoneNumber.getExtension());
    }

    // postal address
    PostalAddressHelper postalAddressHelper = new PostalAddressHelper(postalAddress);
    if (postalAddress != null && !postalAddressHelper.isEmpty()) {
        DetachedCriteria partyContactMechCriteria = partyCriteria.createCriteria("partyContactMechs");
        DetachedCriteria contactMechCriteria = partyContactMechCriteria.createCriteria("contactMech");
        contactMechCriteria.add(Restrictions.eq("contactMechType.contactMechTypeId",
                contactMechTypeCache.getObject(ContactMechTypeKey.KEY_POSTAL_ADDRESS).getId()));
        addRestrictionIfNotEmpty(contactMechCriteria, "addressLine1", postalAddress.getAddressLine1());
        addRestrictionIfNotEmpty(contactMechCriteria, "addressLine2", postalAddress.getAddressLine2());
        addRestrictionIfNotEmpty(contactMechCriteria, "city", postalAddress.getCity());
        addRestrictionIfNotEmpty(contactMechCriteria, "postalCode", postalAddress.getPostalCode());
        if (postalAddress.getStateGeo() != null) {
            contactMechCriteria.add(Restrictions.eq("stateGeo.geoId", postalAddress.getStateGeo().getGeoId()));
        }
        if (postalAddress.getCountryGeo() != null) {
            contactMechCriteria
                    .add(Restrictions.eq("countryGeo.geoId", postalAddress.getCountryGeo().getGeoId()));
        }
    }

    List<Party> contacts = null; //(List<Party>) getHibernateTemplate().findByCriteria(partyCriteria);
    log.debug("Found " + contacts.size() + " contacts matching search criteria.");

    PartyDaoHibernateImpl.lazyLoad(contacts, true, true, false, false);

    return new HashSet(contacts);
}

From source file:de.tudarmstadt.ukp.lmf.api.Uby.java

License:Apache License

/**
 * Returns {@link Iterator} over all {@link Sense} instances contained in the database accessed
 * by this {@link Uby} instance.<br>
 * Optionally, the returned senses can be filtered by {@link Lexicon}.
 *
 * @param lexicon//from w  ww .ja v  a  2 s.  c om
 *            If not null, senses are filtered by the given lexicon
 *
 * @return an iterator over all senses in the accessed database filtered by the given lexicon if
 *         not null
 */
public Iterator<Sense> getSenseIterator(Lexicon lexicon) {
    DetachedCriteria criteria = DetachedCriteria.forClass(Sense.class);
    if (lexicon != null) {
        criteria = criteria.createCriteria("lexicalEntry").add(Restrictions.eq("lexicon", lexicon));
    }
    CriteriaIterator<Sense> senseIterator = new CriteriaIterator<Sense>(criteria, sessionFactory, 500);
    return senseIterator;
}

From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java

License:Apache License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)/*from   w  w w  .  j  a  va2  s  .c  om*/
public List<PupilBooking> getFutureBookingsForTeacher(Teacher teacher) {
    DetachedCriteria c = DetachedCriteria.forClass(PupilBookingImpl.class);

    DateTime end = new DateTime().minusDays(1).withHourOfDay(23).withMinuteOfHour(59).withSecondOfMinute(59)
            .withMillisOfSecond(999);

    c.createCriteria("period").add(Restrictions.eq("status", Status.FINAL));
    c.createCriteria("pupil").add(Restrictions.eq("teacher", teacher)).add(Restrictions.eq("active", true))
            .createCriteria("teacher").add(Restrictions.eq("active", true));
    c.add(Restrictions.gt("date", end));
    c.add(Restrictions.eq("active", true));

    c.addOrder(Order.asc("date"));

    c.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);

    return getHibernateTemplate().findByCriteria(c);
}

From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java

License:Apache License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)/*from   ww w .  j  a v  a 2s  .  co  m*/
public List<PupilBooking> getUnpaidBookings(Pupil pupil) {
    DetachedCriteria c = DetachedCriteria.forClass(PupilBookingImpl.class);

    c.createCriteria("period").add(Restrictions.eq("status", Status.FINAL));
    c.createCriteria("pupil").add(Restrictions.eq("active", true)).createCriteria("teacher")
            .add(Restrictions.eq("active", true));
    c.add(Restrictions.eq("pupil", pupil));
    c.add(Restrictions.lt("date", new DateTime()));
    c.add(Restrictions.eq("paid", false));
    c.add(Restrictions.eq("active", true));

    c.addOrder(Order.asc("date"));

    return getHibernateTemplate().findByCriteria(c);
}

From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java

License:Apache License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)/*from  ww w  .  j a v  a  2 s  . c o m*/
public List<PupilBooking> getUnpaidBookings(Teacher teacher) {
    DetachedCriteria c = DetachedCriteria.forClass(PupilBookingImpl.class);

    c.createCriteria("period").add(Restrictions.eq("status", Status.FINAL));
    c.createCriteria("pupil").add(Restrictions.eq("teacher", teacher)).add(Restrictions.eq("active", true))
            .createCriteria("teacher").add(Restrictions.eq("active", true));
    c.add(Restrictions.lt("date", new DateTime()));
    c.add(Restrictions.eq("paid", false));
    c.add(Restrictions.eq("active", true));

    c.addOrder(Order.asc("date"));

    return getHibernateTemplate().findByCriteria(c);
}

From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java

License:Apache License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)/* ww  w  .j a v  a 2s. co  m*/
public List<PupilBooking> getTeacherNotificationBookings(Teacher teacher) {
    DetachedCriteria c = DetachedCriteria.forClass(PupilBookingImpl.class);

    c.createCriteria("period").add(Restrictions.eq("status", Status.FINAL));
    c.createCriteria("pupil").add(Restrictions.eq("teacher", teacher)).add(Restrictions.eq("active", true))
            .createCriteria("teacher").add(Restrictions.eq("active", true));
    c.add(Restrictions.eq("notificationSent", false));
    c.add(Restrictions.lt("createDate", new DateTime().minusMinutes(15)));
    c.add(Restrictions.eq("active", true));

    return getHibernateTemplate().findByCriteria(c);
}

From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java

License:Apache License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)//  www .  ja v a 2s  .c  om
public Map<Pupil, List<PupilBooking>> getPupilNotificationBookings() {
    Map<Pupil, List<PupilBooking>> pupilNotificationBookings = new HashMap<Pupil, List<PupilBooking>>();

    DetachedCriteria c = DetachedCriteria.forClass(PupilBookingImpl.class);

    c.createCriteria("period").add(Restrictions.eq("status", Status.FINAL));
    c.createCriteria("pupil").add(Restrictions.eq("active", true)).createCriteria("teacher")
            .add(Restrictions.eq("active", true));
    c.add(Restrictions.eq("pupilNotificationSent", false));
    c.add(Restrictions.lt("createDate", new DateTime().minusMinutes(15)));
    c.add(Restrictions.eq("active", true));

    List<PupilBooking> bookings = getHibernateTemplate().findByCriteria(c);

    for (PupilBooking pupilBooking : bookings) {
        List<PupilBooking> pupilBookings = pupilNotificationBookings.get(pupilBooking.getPupil());
        if (pupilBookings == null) {
            pupilBookings = new ArrayList<PupilBooking>();
            pupilNotificationBookings.put(pupilBooking.getPupil(), pupilBookings);
        }

        pupilBookings.add(pupilBooking);
    }

    return pupilNotificationBookings;
}

From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java

License:Apache License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)/*  w w w  . j a  v a  2s. c  om*/
public List<PupilBooking> getPaidBookings(Teacher teacher, DateMidnight startDate, DateMidnight endDate) {
    DetachedCriteria c = DetachedCriteria.forClass(PupilBookingImpl.class);

    c.createCriteria("period").add(Restrictions.eq("status", Status.FINAL));
    c.createCriteria("pupil").add(Restrictions.eq("teacher", teacher)).add(Restrictions.eq("active", true))
            .createCriteria("teacher").add(Restrictions.eq("active", true));
    c.add(Restrictions.eq("paid", true));
    c.add(Restrictions.eq("active", true));

    if (startDate != null && endDate != null) {
        c.add(Restrictions.between("date", startDate.toDateTime(), endDate.toDateTime()));
    } else if (startDate != null) {
        c.add(Restrictions.gt("date", startDate.toDateTime()));
    } else if (endDate != null) {
        c.add(Restrictions.lt("date", endDate.toDateTime()));
    }

    c.addOrder(Order.asc("date"));

    return getHibernateTemplate().findByCriteria(c);
}

From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java

License:Apache License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)//from  w w  w  .  j  av  a  2  s.c  o  m
public List<PupilBooking> getUnPaidBookings(Teacher teacher, DateMidnight startDate, DateMidnight endDate) {
    DetachedCriteria c = DetachedCriteria.forClass(PupilBookingImpl.class);

    c.createCriteria("period").add(Restrictions.eq("status", Status.FINAL));
    c.createCriteria("pupil").add(Restrictions.eq("teacher", teacher)).add(Restrictions.eq("active", true))
            .createCriteria("teacher").add(Restrictions.eq("active", true));
    c.add(Restrictions.eq("paid", false));
    c.add(Restrictions.eq("active", true));

    if (startDate != null && endDate != null) {
        c.add(Restrictions.between("date", startDate.toDateTime(), endDate.toDateTime()));
    } else if (startDate != null) {
        c.add(Restrictions.gt("date", startDate.toDateTime()));
    } else if (endDate != null) {
        c.add(Restrictions.lt("date", endDate.toDateTime()));
    }

    c.addOrder(Order.asc("date"));

    return getHibernateTemplate().findByCriteria(c);
}

From source file:dk.teachus.backend.dao.hibernate.HibernateBookingDAO.java

License:Apache License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)//  ww  w . j  a  v  a  2 s  . c o m
public Bookings getAllBookings(Teacher teacher) {
    DetachedCriteria c = DetachedCriteria.forClass(BookingImpl.class);

    c.createCriteria("period").add(Restrictions.eq("status", Status.FINAL));
    c.createCriteria("teacher").add(Restrictions.eq("active", true));
    c.add(Restrictions.eq("teacher", teacher));
    c.add(Restrictions.eq("active", true));

    c.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);

    List<Booking> bookings = getHibernateTemplate().findByCriteria(c);
    List<Booking> filteredBookings = filterBookings(bookings);

    return new BookingsImpl(filteredBookings);
}