Example usage for org.hibernate.criterion Projections count

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

Introduction

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

Prototype

public static CountProjection count(String propertyName) 

Source Link

Document

A property value count projection

Usage

From source file:org.xchain.namespaces.hibernate.test.TestCriteriaEntityPermission.java

License:Apache License

@Test
public void testEmptyResultCriteria() throws Exception {
    Session session = HibernateLifecycle.getCurrentSession();
    IdentityManager.instance().loggedIn(new UsernamePrincipal(userList.get(0).getUsername()));
    UserNote instance = (UserNote) userList.get(0).getUserNoteSet().toArray()[0];
    Transaction t = session.beginTransaction();
    Criteria notesCriteria = session.createCriteria(UserNote.class);
    notesCriteria.setProjection(Projections.projectionList().add(Projections.count("text")));
    notesCriteria.add(Restrictions.isNull("text"));
    CriteriaEntityPermission p = new CriteriaEntityPermission(EntityOperation.LOAD, UserNote.class,
            notesCriteria, null, null, null, null);
    EntityPermission<UserNote> instancePermission = new EntityPermission<UserNote>(EntityOperation.LOAD,
            instance.getId(), instance);
    try {/*from   w  ww  .  j  av  a2s  . c om*/
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (SecurityException e) {
    }
    try {
        IdentityManager.instance().getIdentity().getPermissions().add(p);
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (Exception e) {
    }
    t.rollback();
}

From source file:org.xchain.namespaces.hibernate.test.TestCriteriaEntityPermission.java

License:Apache License

@Test
public void testOnlyRootCriteria() throws Exception {
    Session session = HibernateLifecycle.getCurrentSession();
    IdentityManager.instance().loggedIn(new UsernamePrincipal(userList.get(0).getUsername()));
    UserNote instance = (UserNote) userList.get(0).getUserNoteSet().toArray()[0];
    Transaction t = session.beginTransaction();
    Criteria notesCriteria = session.createCriteria(UserNote.class);
    notesCriteria.setProjection(Projections.projectionList().add(Projections.count("text")));
    CriteriaEntityPermission p = new CriteriaEntityPermission(EntityOperation.LOAD, UserNote.class,
            notesCriteria, null, null, null, null);
    EntityPermission<UserNote> instancePermission = new EntityPermission<UserNote>(EntityOperation.LOAD,
            instance.getId(), instance);
    try {// ww  w.j  a v a 2s .  c  o  m
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (SecurityException e) {
    }
    try {
        IdentityManager.instance().getIdentity().getPermissions().add(p);
        SecurityManager.instance().checkPermission(instancePermission);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    t.rollback();
}

From source file:org.xchain.namespaces.hibernate.test.TestCriteriaEntityPermission.java

License:Apache License

@Test
public void testRootAndEntityAreSameCriteria() throws Exception {
    Session session = HibernateLifecycle.getCurrentSession();
    IdentityManager.instance().loggedIn(new UsernamePrincipal(userList.get(0).getUsername()));
    UserNote instance = (UserNote) userList.get(0).getUserNoteSet().toArray()[0];
    Transaction t = session.beginTransaction();
    Criteria notesCriteria = session.createCriteria(UserNote.class);
    notesCriteria.setProjection(Projections.projectionList().add(Projections.count("text")));
    Criteria userCriteria = notesCriteria.createCriteria("user");
    CriteriaEntityPermission p = new CriteriaEntityPermission(EntityOperation.LOAD, UserNote.class,
            notesCriteria, userCriteria, notesCriteria, "username", "id");
    EntityPermission<UserNote> instancePermission = new EntityPermission<UserNote>(EntityOperation.LOAD,
            instance.getId(), instance);
    try {/*from  w  w w .  j a va 2 s.c o m*/
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (SecurityException e) {
    }
    try {
        IdentityManager.instance().getIdentity().getPermissions().add(p);
        SecurityManager.instance().checkPermission(instancePermission);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    t.rollback();
}

From source file:org.xchain.namespaces.hibernate.test.TestCriteriaEntityPermission.java

License:Apache License

@Test
public void testRootAndPrincipalAreSameCriteria() throws Exception {
    Session session = HibernateLifecycle.getCurrentSession();
    IdentityManager.instance().loggedIn(new UsernamePrincipal(userList.get(0).getUsername()));
    User instance = userList.get(0);// w  ww.j  a  va2  s  .c  om
    Transaction t = session.beginTransaction();
    Criteria userCriteria = session.createCriteria(User.class);
    userCriteria.setProjection(Projections.projectionList().add(Projections.count("username")));
    CriteriaEntityPermission p = new CriteriaEntityPermission(EntityOperation.LOAD, User.class, userCriteria,
            userCriteria, null, "username", "id");
    EntityPermission<User> instancePermission = new EntityPermission<User>(EntityOperation.LOAD,
            instance.getUsername(), instance);
    try {
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (SecurityException e) {
    }
    try {
        IdentityManager.instance().getIdentity().getPermissions().add(p);
        SecurityManager.instance().checkPermission(instancePermission);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    t.rollback();
}

From source file:org.xchain.namespaces.hibernate.test.TestCriteriaEntityPermission.java

License:Apache License

@Test
public void testAllCriteriaAreSame() throws Exception {
    Session session = HibernateLifecycle.getCurrentSession();
    IdentityManager.instance().loggedIn(new UsernamePrincipal(userList.get(0).getUsername()));
    User instance = userList.get(0);/*from   w  w w  . j  a  v a2 s  . com*/
    Transaction t = session.beginTransaction();
    Criteria userCriteria = session.createCriteria(User.class);
    userCriteria.setProjection(Projections.projectionList().add(Projections.count("username")));
    CriteriaEntityPermission p = new CriteriaEntityPermission(EntityOperation.LOAD, User.class, userCriteria,
            userCriteria, userCriteria, "username", "id");
    EntityPermission<User> instancePermission = new EntityPermission<User>(EntityOperation.LOAD,
            instance.getUsername(), instance);
    try {
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (SecurityException e) {
    }
    try {
        IdentityManager.instance().getIdentity().getPermissions().add(p);
        SecurityManager.instance().checkPermission(instancePermission);
    } catch (Exception e) {
        fail(e.getMessage());
    }
    t.rollback();
}

From source file:org.xchain.namespaces.hibernate.test.TestQualifiedEntityPermission.java

License:Apache License

@Test
public void testEntityNotAssignable() throws Exception {
    Session session = HibernateLifecycle.getCurrentSession();
    IdentityManager.instance().loggedIn(new UsernamePrincipal(userList.get(0).getUsername()));
    UserNote instance = (UserNote) userList.get(0).getUserNoteSet().toArray()[0];
    Transaction t = session.beginTransaction();
    Criteria notesCriteria = session.createCriteria(UserNote.class);
    notesCriteria.setProjection(Projections.projectionList().add(Projections.count("text")));
    CriteriaEntityPermission p = new CriteriaEntityPermission(EntityOperation.LOAD, UserNote.class,
            notesCriteria, null, null, null, null);
    EntityPermission<User> instancePermission = new EntityPermission<User>(EntityOperation.LOAD,
            instance.getId(), userList.get(0));
    try {/*w  w w  .j ava 2  s. c om*/
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (SecurityException e) {
    }
    try {
        IdentityManager.instance().getIdentity().getPermissions().add(p);
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (Exception e) {
    }
    t.rollback();
}

From source file:org.xchain.namespaces.hibernate.test.TestQualifiedEntityPermission.java

License:Apache License

@Test
public void testPermissionNotImplied() throws Exception {
    Session session = HibernateLifecycle.getCurrentSession();
    IdentityManager.instance().loggedIn(new UsernamePrincipal(userList.get(0).getUsername()));
    UserNote instance = (UserNote) userList.get(0).getUserNoteSet().toArray()[0];
    Transaction t = session.beginTransaction();
    Criteria notesCriteria = session.createCriteria(UserNote.class);
    notesCriteria.setProjection(Projections.projectionList().add(Projections.count("text")));
    CriteriaEntityPermission p = new CriteriaEntityPermission(EntityOperation.LOAD, UserNote.class,
            notesCriteria, null, null, null, null);
    EntityPermission<UserNote> instancePermission = new EntityPermission<UserNote>(EntityOperation.UPDATE,
            instance.getId(), instance);
    try {/*from   w ww .j  a  v a  2  s  .c  o m*/
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (SecurityException e) {
    }
    try {
        IdentityManager.instance().getIdentity().getPermissions().add(p);
        SecurityManager.instance().checkPermission(instancePermission);
        fail();
    } catch (Exception e) {
    }
    t.rollback();
}

From source file:org.xerela.provider.devices.DeviceResolutionElf.java

License:Mozilla Public License

/**
 * Populates a {@link PageData} with the results for the given criteria.
 * @param pageData The page to retrieve.
 * @param criteria The query./*from   ww w  .j a  v  a2  s  . c o  m*/
 * @param sortColumn The sort column or <code>null</code>
 * @param descending <code>true</code> for descending sort, <code>false</code> otherwise.
 * @return The populated page.
 */
public static PageData populatePageData(PageData pageData, Criteria criteria, String sortColumn,
        boolean descending) {
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("populatePageData from criteria: " + criteria.toString()); //$NON-NLS-1$
    }

    criteria.scroll(ScrollMode.SCROLL_INSENSITIVE);

    if (pageData.getOffset() == 0) {
        // Set the total result size into the page data.
        criteria.setProjection(Projections.count(ATTR_DEVICE_ID));
        Object uniqueResult = criteria.uniqueResult();
        if (uniqueResult instanceof Integer) {
            pageData.setTotal((Integer) uniqueResult);
        } else if (uniqueResult instanceof Long) {
            pageData.setTotal(((Long) uniqueResult).intValue());
        } else {
            pageData.setTotal(((BigInteger) uniqueResult).intValue());
        }

        criteria.setProjection(null);
    }

    if (sortColumn != null) {
        if (sortColumn.equals(ATTR_IP_ADDRESS)) {
            criteria.addOrder(descending ? Order.desc(ATTR_IP_HIGH) : Order.asc(ATTR_IP_HIGH))
                    .addOrder(descending ? Order.desc(ATTR_IP_LOW) : Order.asc(ATTR_IP_LOW));
        } else {
            criteria.addOrder((descending ? Order.desc(sortColumn.trim()) : Order.asc(sortColumn.trim())));
        }
    }

    List<ZDeviceLite> list = new ArrayList<ZDeviceLite>();
    ScrollableResults scroll = criteria.scroll();
    while (scroll.next()) {
        Object[] objects = scroll.get();
        list.add((ZDeviceLite) objects[0]);
    }
    scroll.close();

    pageData.setDevices(list.toArray(new ZDeviceLite[0]));

    return pageData;
}

From source file:org.xerela.provider.scheduler.Scheduler.java

License:Mozilla Public License

/** {@inheritDoc} */
public PageData getExecutionData(PageData pageData, String sortColumn, boolean descending) {
    Session session = SchedulerActivator.getSessionFactory().getCurrentSession();

    Criteria criteria = session.createCriteria(ExecutionData.class).add(Restrictions.isNotNull("startTime"))
            .setFirstResult(pageData.getOffset()).setMaxResults(pageData.getPageSize());

    if (pageData.getOffset() == 0) {
        // Set the total result size into the page data.
        criteria.setProjection(Projections.count("id"));

        Integer total = (Integer) criteria.uniqueResult();
        pageData.setTotal(total);/* www .ja v  a2  s  . co  m*/

        criteria.setProjection(null);
    }

    if (sortColumn != null) {
        criteria.addOrder((descending ? Order.desc(sortColumn.trim()) : Order.asc(sortColumn.trim())));
    }

    List<ExecutionData> list = new ArrayList<ExecutionData>();
    ScrollableResults scroll = criteria.scroll(ScrollMode.SCROLL_INSENSITIVE);
    while (scroll.next()) {
        list.add((ExecutionData) scroll.get(0));
    }
    scroll.close();

    pageData.setExecutionData(list);

    return pageData;
}

From source file:postgreHibernateClient.postgreCacheClient.java

License:Open Source License

@Override
public HashMap<String, String> getInitialStats() {
    HashMap<String, String> stats = new HashMap<String, String>();
    session = sessionFactory.openSession();
    try {/*from   w ww .  jav a  2s. c  om*/
        tx = session.beginTransaction();

        Criteria c = session.createCriteria(USERS.class).setProjection(Projections.count("userid"));

        Long usercount = (Long) c.list().get(0);
        usercount = usercount > 0 ? usercount : 0;
        stats.put("usercount", Long.toString(usercount));

        Criteria c1 = session.createCriteria(USERS.class).setProjection(Projections.min("userid"));

        String offset = (String) c1.list().get(0);
        //get resources per user

        USERS u = new USERS();
        u = (USERS) session.get(USERS.class, offset);
        stats.put("avgfriendsperuser", Integer.toString(u.getConfFriendCnt()));

        stats.put("resourcesperuser", Integer.toString(u.getResCnt()));

        stats.put("avgpendingperuser", Integer.toString(u.getPendFriendCnt()));
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        session.close();
    }
    return stats;
}