Example usage for org.hibernate.criterion Projections rowCount

List of usage examples for org.hibernate.criterion Projections rowCount

Introduction

In this page you can find the example usage for org.hibernate.criterion Projections rowCount.

Prototype

public static Projection rowCount() 

Source Link

Document

The query row count, ie.

Usage

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.RigOfflineScheduleDao.java

License:Open Source License

/**
 * Returns true if the rig is currently in a scheduled off-line period.
 * // w w w  . j a  va 2  s .com
 * @param rig rig to check
 * @return true if off-line
 */
public boolean isOffline(Rig rig) {
    Date now = new Date();
    return (Integer) this.session.createCriteria(this.clazz).add(Restrictions.eq("rig", rig))
            .add(Restrictions.eq("active", Boolean.TRUE)).add(Restrictions.lt("startTime", now))
            .add(Restrictions.gt("endTime", now)).setProjection(Projections.rowCount()).uniqueResult() > 0;
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.tests.UserAssociationDaoTester.java

License:Open Source License

public void testDeleteUserUserClass() {
    Session ses = this.dao.getSession();
    ses.beginTransaction();/*  w  ww. j av  a2  s  . c om*/

    User us = new User("user", "userns", "ADMIN");
    ses.save(us);

    UserClass uc = new UserClass();
    uc.setName("clazz");
    uc.setPriority((short) 10);
    uc.setActive(true);
    uc.setKickable(true);
    uc.setQueuable(true);
    uc.setBookable(true);
    uc.setUsersLockable(true);
    ses.save(uc);

    UserAssociationId id = new UserAssociationId(us.getId(), uc.getId());
    UserAssociation assoc = new UserAssociation(id, uc, us);
    ses.save(assoc);

    ses.getTransaction().commit();

    this.dao.delete(us, uc);

    int num = (Integer) this.dao.getSession().createCriteria(UserAssociation.class)
            .add(Restrictions.eq("user", us)).add(Restrictions.eq("userClass", uc))
            .setProjection(Projections.rowCount()).uniqueResult();

    assertEquals(0, num);

    ses.beginTransaction();
    ses.delete(us);
    ses.delete(uc);
    ses.getTransaction().commit();
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.tests.UserAssociationDaoTester.java

License:Open Source License

public void testDeleteUserUserClassNoDelete() {
    Session ses = this.dao.getSession();
    ses.beginTransaction();//from  w  w  w  . j ava  2s  . c o m

    User us = new User("user", "userns", "ADMIN");
    ses.save(us);

    User us2 = new User("user2", "userns", "ADMIN");
    ses.save(us2);

    UserClass uc = new UserClass();
    uc.setName("clazz");
    uc.setPriority((short) 10);
    uc.setActive(true);
    uc.setKickable(true);
    uc.setQueuable(true);
    uc.setBookable(true);
    uc.setUsersLockable(true);
    ses.save(uc);

    UserAssociationId id = new UserAssociationId(us.getId(), uc.getId());
    UserAssociation assoc = new UserAssociation(id, uc, us);
    ses.save(assoc);

    ses.getTransaction().commit();

    this.dao.delete(us2, uc);

    int num = (Integer) this.dao.getSession().createCriteria(UserAssociation.class)
            .add(Restrictions.eq("user", us)).add(Restrictions.eq("userClass", uc))
            .setProjection(Projections.rowCount()).uniqueResult();

    assertEquals(1, num);

    ses.beginTransaction();
    ses.delete(assoc);
    ses.delete(us);
    ses.delete(us2);
    ses.delete(uc);
    ses.getTransaction().commit();
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.tests.UserClassDaoTester.java

License:Open Source License

@Test
public void testDeleteUserClassKeyRef() {
    Session ses = DataAccessActivator.getNewSession();
    ses.beginTransaction();//from w  w w  .j  av  a2 s  . co  m

    UserClass uc = new UserClass();
    uc.setName("clazz");
    uc.setPriority((short) 10);
    uc.setActive(true);
    uc.setKickable(true);
    uc.setQueuable(true);
    uc.setBookable(true);
    uc.setUsersLockable(true);
    ses.save(uc);

    UserClassKey key = new UserClassKey();
    key.generateKey();
    key.setRemaining(1);
    key.setUserClass(uc);
    ses.save(key);

    UserClassKeyConstraint keyConst = new UserClassKeyConstraint();
    keyConst.setClassKey(key);
    keyConst.setName("foo_const");
    keyConst.setValue("bar_const");
    ses.save(keyConst);

    ses.getTransaction().commit();

    this.dao.delete(this.dao.get(uc.getId()));

    int num = (Integer) ses.createCriteria(UserClass.class).add(Restrictions.eq("id", uc.getId()))
            .setProjection(Projections.rowCount()).uniqueResult();
    assertEquals(0, num);

    num = (Integer) ses.createCriteria(UserClassKey.class).add(Restrictions.eq("redeemKey", key.getRedeemKey()))
            .setProjection(Projections.rowCount()).uniqueResult();
    assertEquals(0, num);

    num = (Integer) ses.createCriteria(UserClassKeyConstraint.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();
    assertEquals(0, num);
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.tests.UserClassKeyDaoTester.java

License:Open Source License

@Test
public void testDelete() {
    Session db = DataAccessActivator.getNewSession();

    db.beginTransaction();/*from  ww  w .  ja  v  a 2s  . com*/

    UserClass uc = new UserClass();
    uc.setName("UC_Test");
    uc.setPriority((short) 1);
    uc.setTimeHorizon(0);
    db.persist(uc);

    UserClassKey key = new UserClassKey();
    key.setRemaining(1);
    key.setUserClass(uc);
    key.generateKey();
    db.persist(key);

    db.getTransaction().commit();

    int preDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    this.dao.delete(this.dao.get(key.getId()));

    int postDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    db.beginTransaction();
    db.delete(uc);
    db.getTransaction().commit();

    assertEquals(1, preDelete);
    assertEquals(0, postDelete);
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.tests.UserClassKeyDaoTester.java

License:Open Source License

@Test
public void testDeleteId() {
    Session db = DataAccessActivator.getNewSession();

    db.beginTransaction();/*ww w.j a  v  a 2s.c  o m*/

    UserClass uc = new UserClass();
    uc.setName("UC_Test");
    uc.setPriority((short) 1);
    uc.setTimeHorizon(0);
    db.persist(uc);

    UserClassKey key = new UserClassKey();
    key.setRemaining(1);
    key.setUserClass(uc);
    key.generateKey();
    db.persist(key);

    db.getTransaction().commit();

    int preDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    this.dao.delete(key.getId());

    int postDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    db.beginTransaction();
    db.delete(uc);
    db.getTransaction().commit();

    assertEquals(1, preDelete);
    assertEquals(0, postDelete);
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.tests.UserClassKeyDaoTester.java

License:Open Source License

@Test
public void testDeleteWithConstRef() {
    Session db = DataAccessActivator.getNewSession();

    db.beginTransaction();/*  w  w  w.java 2  s .c om*/

    UserClass uc = new UserClass();
    uc.setName("UC_Test");
    uc.setPriority((short) 1);
    uc.setTimeHorizon(0);
    db.persist(uc);

    UserClassKey key = new UserClassKey();
    key.setRemaining(1);
    key.setUserClass(uc);
    key.generateKey();
    db.persist(key);

    UserClassKeyConstraint keyConst = new UserClassKeyConstraint();
    keyConst.setName("Const_1");
    keyConst.setValue("Value_1");
    keyConst.setClassKey(key);
    db.persist(keyConst);

    UserClassKeyConstraint keyConst2 = new UserClassKeyConstraint();
    keyConst2.setName("Const_2");
    keyConst2.setValue("Value_2");
    keyConst2.setClassKey(key);
    db.persist(keyConst2);

    db.getTransaction().commit();

    int preDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    int preRefCount = (Integer) db.createCriteria(UserClassKeyConstraint.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();

    this.dao.delete(this.dao.get(key.getId()));

    int postDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    int postRefCount = (Integer) db.createCriteria(UserClassKeyConstraint.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();

    db.beginTransaction();
    db.delete(uc);
    db.getTransaction().commit();

    assertEquals(1, preDelete);
    assertEquals(2, preRefCount);
    assertEquals(0, postDelete);
    assertEquals(0, postRefCount);
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.tests.UserClassKeyDaoTester.java

License:Open Source License

@Test
public void testDeleteWithRedeemRef() {
    Session db = DataAccessActivator.getNewSession();

    db.beginTransaction();/*from   w  w w .j  a va 2s  .  co m*/

    UserClass uc = new UserClass();
    uc.setName("UC_Test");
    uc.setPriority((short) 1);
    uc.setTimeHorizon(0);
    db.persist(uc);

    UserClassKey key = new UserClassKey();
    key.setRemaining(1);
    key.setUserClass(uc);
    key.generateKey();
    db.persist(key);

    User user = new User();
    user.setName("uck_test");
    user.setNamespace("TEST");
    user.setPersona("USER");
    db.persist(user);

    User user2 = new User();
    user2.setName("uck_test2");
    user2.setNamespace("TEST");
    user2.setPersona("USER");
    db.persist(user2);

    UserClassKeyRedemption redemp = new UserClassKeyRedemption();
    redemp.setClassKey(key);
    redemp.setUser(user);
    db.persist(redemp);

    UserClassKeyRedemption redemp2 = new UserClassKeyRedemption();
    redemp2.setClassKey(key);
    redemp2.setUser(user2);
    db.persist(redemp2);

    db.getTransaction().commit();

    int preDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    int preRefCount = (Integer) db.createCriteria(UserClassKeyRedemption.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();

    this.dao.delete(this.dao.get(key.getId()));

    int postDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    int postRefCount = (Integer) db.createCriteria(UserClassKeyRedemption.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();

    db.beginTransaction();
    db.delete(user);
    db.delete(user2);
    db.delete(uc);
    db.getTransaction().commit();

    assertEquals(1, preDelete);
    assertEquals(2, preRefCount);
    assertEquals(0, postDelete);
    assertEquals(0, postRefCount);
}

From source file:au.edu.uts.eng.remotelabs.schedserver.dataaccess.dao.tests.UserClassKeyDaoTester.java

License:Open Source License

@Test
public void testDeleteWithRefs() {
    Session db = DataAccessActivator.getNewSession();

    db.beginTransaction();/* w  w  w  .j a  v a  2s  .c  om*/

    UserClass uc = new UserClass();
    uc.setName("UC_Test");
    uc.setPriority((short) 1);
    uc.setTimeHorizon(0);
    db.persist(uc);

    UserClassKey key = new UserClassKey();
    key.setRemaining(1);
    key.setUserClass(uc);
    key.generateKey();
    db.persist(key);

    UserClassKeyConstraint keyConst = new UserClassKeyConstraint();
    keyConst.setName("Const_1");
    keyConst.setValue("Value_1");
    keyConst.setClassKey(key);
    db.persist(keyConst);

    UserClassKeyConstraint keyConst2 = new UserClassKeyConstraint();
    keyConst2.setName("Const_2");
    keyConst2.setValue("Value_2");
    keyConst2.setClassKey(key);
    db.persist(keyConst2);

    User user = new User();
    user.setName("uck_test");
    user.setNamespace("TEST");
    user.setPersona("USER");
    db.persist(user);

    User user2 = new User();
    user2.setName("uck_test2");
    user2.setNamespace("TEST");
    user2.setPersona("USER");
    db.persist(user2);

    UserClassKeyRedemption redemp = new UserClassKeyRedemption();
    redemp.setClassKey(key);
    redemp.setUser(user);
    db.persist(redemp);

    UserClassKeyRedemption redemp2 = new UserClassKeyRedemption();
    redemp2.setClassKey(key);
    redemp2.setUser(user2);
    db.persist(redemp2);

    db.getTransaction().commit();

    int preDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    int preConstRefCount = (Integer) db.createCriteria(UserClassKeyConstraint.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();

    int preRedempRefCount = (Integer) db.createCriteria(UserClassKeyRedemption.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();

    this.dao.delete(this.dao.get(key.getId()));

    int postDelete = (Integer) db.createCriteria(UserClassKey.class)
            .add(Restrictions.eq("redeemKey", key.getRedeemKey())).setProjection(Projections.rowCount())
            .uniqueResult();

    int postConstRefCount = (Integer) db.createCriteria(UserClassKeyConstraint.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();

    int postRedempRefCount = (Integer) db.createCriteria(UserClassKeyRedemption.class)
            .add(Restrictions.eq("classKey.id", key.getId())).setProjection(Projections.rowCount())
            .uniqueResult();

    db.beginTransaction();
    db.delete(user);
    db.delete(user2);
    db.delete(uc);
    db.getTransaction().commit();

    assertEquals(1, preDelete);
    assertEquals(2, preConstRefCount);
    assertEquals(2, preRedempRefCount);
    assertEquals(0, postDelete);
    assertEquals(0, postConstRefCount);
    assertEquals(0, postRedempRefCount);
}

From source file:au.edu.uts.eng.remotelabs.schedserver.permissions.pages.UserClassesPage.java

License:Open Source License

/**
 * Deletes a user class./*from  w w w.  j a v a 2s  . com*/
 * 
 * @param req request
 * @return response
 * @throws JSONException
 */
public JSONObject deleteClass(HttpServletRequest req) throws JSONException {
    JSONObject response = new JSONObject();
    response.put("wasSuccessful", false);

    String name = req.getParameter("name");
    if (name == null) {
        this.logger.warn("Unable to delete user class because the class name was not specified.");
        response.put("reason", "Name was not specified.");
        return response;
    }

    UserClassDao dao = new UserClassDao(this.db);
    UserClass uc = dao.findByName(name);
    if (uc == null) {
        this.logger.warn("Unable to delete user class because the class '" + name + "' was not found.");
        response.put("reason", "User class was not found.");
        return response;
    }

    this.logger.debug("Attempting to delete user class '" + uc.getName() + "'.");

    int num = (Integer) this.db.createCriteria(Session.class).add(Restrictions.eq("active", Boolean.TRUE))
            .createCriteria("resourcePermission").add(Restrictions.eq("userClass", uc))
            .setProjection(Projections.rowCount()).uniqueResult();
    if (num > 0) {
        this.logger.warn("Unable to delete user class '" + uc.getName()
                + "' because a session from this classes " + "permission is active.");
        response.put("reason", "A session from this class is in progress.");
        return response;
    }

    num = (Integer) this.db.createCriteria(Bookings.class).add(Restrictions.eq("active", Boolean.TRUE))
            .createCriteria("resourcePermission").add(Restrictions.eq("userClass", uc))
            .setProjection(Projections.rowCount()).uniqueResult();
    if (num > 0) {
        this.logger.warn("Unable to delete user class '" + uc.getName()
                + "' because a booking from this classes " + "permission is active.");
        response.put("reason", "User class has active reservations.");
        return response;
    }

    dao.delete(uc);
    this.logger.info("Deleted user class '" + uc.getName() + "'.");

    response.put("wasSuccessful", true);
    return response;
}