List of usage examples for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY
ResultTransformer DISTINCT_ROOT_ENTITY
To view the source code for org.hibernate.criterion CriteriaSpecification DISTINCT_ROOT_ENTITY.
Click Source Link
From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java
License:Open Source License
@SuppressWarnings("unchecked") @Override/*from w ww . j a v a 2 s .c o m*/ @Transactional(readOnly = true) public Set<Principal> getPrincipalsWithPermissions(Permission permission) { Criteria crit = createCriteria(Principal.class) .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY).createCriteria("roles") .createCriteria("permissions").add(Restrictions.eq("resourceKey", permission.getResourceKey())); return new HashSet<Principal>(crit.list()); }
From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java
License:Open Source License
@Override @Transactional(readOnly = true)//from w w w . j a v a2 s . c o m public List<Role> searchRoles(final Realm realm, String searchPattern, int start, int length, ColumnSort[] sorting) { return search(Role.class, "name", searchPattern, start, length, sorting, new CriteriaConfiguration() { @Override public void configure(Criteria criteria) { criteria.add(Restrictions.eq("personalRole", false)); criteria.add(Restrictions.eq("hidden", false)); criteria.setFetchMode("permissions", FetchMode.SELECT); criteria.setFetchMode("principals", FetchMode.SELECT); criteria.setFetchMode("resources", FetchMode.SELECT); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); criteria.add(Restrictions.eq("realm", realm)); } }); }
From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java
License:Open Source License
@Override @Transactional(readOnly = true)/*w w w . j av a2s. c om*/ public Long countRoles(final Realm realm, String searchPattern) { return getCount(Role.class, "name", searchPattern, new CriteriaConfiguration() { @Override public void configure(Criteria criteria) { criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); criteria.add(Restrictions.eq("personalRole", false)); criteria.add(Restrictions.eq("hidden", false)); criteria.add(Restrictions.or(Restrictions.eq("realm", realm), Restrictions.isNull("realm"))); } }); }
From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java
License:Open Source License
@SuppressWarnings("unchecked") @Override/*from w ww . j ava 2 s . c o m*/ @Transactional public Role getPersonalRole(Principal principal) { Criteria crit = createCriteria(Role.class).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY) .add(Restrictions.eq("personalRole", true)).createCriteria("principals") .add(Restrictions.in("id", Arrays.asList(principal.getId()))); Set<Role> roles = new HashSet<Role>(crit.list()); if (roles.isEmpty()) { return createPersonalRole(principal); } else { return roles.iterator().next(); } }
From source file:com.hypersocket.permissions.PermissionRepositoryImpl.java
License:Open Source License
@SuppressWarnings("unchecked") @Override/*from ww w . j av a 2 s . com*/ @Transactional(readOnly = true) public Set<Role> getRolesForPrincipal(List<Principal> principals) { if (principals == null) { return new HashSet<Role>(); } Criteria crit = createCriteria(Role.class).setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); List<Long> ids = new ArrayList<Long>(); for (Principal p : principals) { ids.add(p.getId()); } crit = crit.createCriteria("principals").add(Restrictions.in("id", ids)); Set<Role> roles = new HashSet<Role>(crit.list()); roles.addAll(getAllUserRoles(principals.get(0).getRealm())); return roles; }
From source file:com.hypersocket.repository.AbstractRepositoryImpl.java
License:Open Source License
@SuppressWarnings("unchecked") @Transactional(readOnly = true)/*from www .ja va 2 s. c o m*/ protected <T> List<T> list(Class<T> cls, boolean caseInsensitive, CriteriaConfiguration... configs) { Criteria criteria = createCriteria(cls); for (CriteriaConfiguration c : configs) { c.configure(criteria); } criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); @SuppressWarnings("rawtypes") List results = criteria.list(); return results; }
From source file:com.hypersocket.repository.AbstractRepositoryImpl.java
License:Open Source License
@SuppressWarnings("unchecked") @Transactional(readOnly = true)/* w w w . j a v a 2 s .c om*/ protected <T> Collection<T> list(Class<T> cls, CriteriaConfiguration... configs) { Criteria criteria = createCriteria(cls); for (CriteriaConfiguration c : configs) { c.configure(criteria); } criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); @SuppressWarnings("rawtypes") List results = criteria.list(); return results; }
From source file:com.hypersocket.repository.AbstractRepositoryImpl.java
License:Open Source License
@SuppressWarnings("unchecked") @Transactional(readOnly = true)//from w w w . j av a 2s .c om protected <T> List<T> list(String column, Object value, Class<T> cls, boolean caseInsensitive, DetachedCriteriaConfiguration... configs) { DetachedCriteria criteria = createDetachedCriteria(cls); if (caseInsensitive) { criteria.add(Restrictions.eq(column, value).ignoreCase()); } else { criteria.add(Restrictions.eq(column, value)); } for (DetachedCriteriaConfiguration c : configs) { c.configure(criteria); } criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); @SuppressWarnings("rawtypes") List results = hibernateTemplate.findByCriteria(criteria); return results; }
From source file:com.hypersocket.repository.AbstractRepositoryImpl.java
License:Open Source License
@SuppressWarnings("unchecked") @Transactional(readOnly = true)/*from w w w. j a v a 2 s .c om*/ protected <T> T get(String column, Object value, Class<T> cls, boolean caseInsensitive, DetachedCriteriaConfiguration... configs) { DetachedCriteria criteria = createDetachedCriteria(cls); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); if (caseInsensitive) { criteria.add(Restrictions.eq(column, value).ignoreCase()); } else { criteria.add(Restrictions.eq(column, value)); } for (DetachedCriteriaConfiguration c : configs) { c.configure(criteria); } @SuppressWarnings("rawtypes") List results = hibernateTemplate.findByCriteria(criteria); if (results.isEmpty()) { return null; } else if (results.size() > 1) { if (log.isWarnEnabled()) { log.warn("Too many results returned in get request for column=" + column + " value=" + value + " class=" + cls.getName()); } } return (T) results.get(0); }
From source file:com.hypersocket.repository.AbstractRepositoryImpl.java
License:Open Source License
@SuppressWarnings("unchecked") @Transactional(readOnly = true)/*from ww w. ja v a 2s . co m*/ protected <T> T get(Class<T> cls, DetachedCriteriaConfiguration... configs) { DetachedCriteria criteria = createDetachedCriteria(cls); criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); for (DetachedCriteriaConfiguration c : configs) { c.configure(criteria); } @SuppressWarnings("rawtypes") List results = hibernateTemplate.findByCriteria(criteria); if (results.isEmpty()) { return null; } else if (results.size() > 1) { throw new IllegalStateException("Too many results returned in get request class=" + cls.getName()); } return (T) results.get(0); }