List of usage examples for org.hibernate.criterion Projections rowCount
public static Projection rowCount()
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; }