List of usage examples for org.hibernate.criterion DetachedCriteria createAlias
public DetachedCriteria createAlias(String associationPath, String alias)
From source file:alpha.portal.dao.hibernate.AlphaCardDaoHibernate.java
License:Apache License
/** * List alpha cards by criterion./* w ww.jav a 2 s. c om*/ * * @param caseId * the case id * @param criteriaArray * the criteria array * @return the list * @see alpha.portal.dao.AlphaCardDao#listAlphaCardsByCriterion(org.hibernate.criterion.Criterion) */ public List<AlphaCard> listAlphaCardsByCriterion(final String caseId, final Criterion... criteriaArray) { Session session; boolean sessionOwn = false; try { session = this.getSessionFactory().getCurrentSession(); } catch (final Exception e) { session = this.getSessionFactory().openSession(); sessionOwn = true; } // get newest sequenceNumber for each cardId final DetachedCriteria version = DetachedCriteria.forClass(AlphaCard.class, "cardVersion") .add(Property.forName("card.alphaCardIdentifier.cardId") .eqProperty("cardVersion.alphaCardIdentifier.cardId")) .setProjection( Projections.projectionList().add(Projections.max("alphaCardIdentifier.sequenceNumber"))); final Criteria crit = session.createCriteria(AlphaCard.class, "card"); for (final Criterion c : criteriaArray) { // Create the subquery (somehow we need to use the Descriptor or // else the subquery-JOIN is not done) final DetachedCriteria subcrit = DetachedCriteria.forClass(AlphaCardDescriptor.class, "crit"); // Join the adornments subcrit.createAlias("crit.adornmentList", "ad"); // Add adornment condition subcrit.add(c); // Map the subquery back to the outer query subcrit.add(Restrictions.eqProperty("card.alphaCardIdentifier", "crit.alphaCardIdentifier")); // Narrow down subquery or else we get a NullPointer-Exception subcrit.setProjection(Projections.property("crit.alphaCardIdentifier.cardId")); // Add this subquery to the outer query. crit.add(Subqueries.exists(subcrit)); } crit.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY) .add(Property.forName("alphaCardIdentifier.sequenceNumber").eq(version)) .createAlias("alphaCase", "case").add(Restrictions.eq("case.caseId", caseId)); List<AlphaCard> list = crit.list(); if (list.size() > 1) { final List<AlphaCard> order = (list.get(0)).getAlphaCase().getAlphaCards(); final List<AlphaCard> orderedList = new LinkedList<AlphaCard>(); for (final AlphaCard cc : order) { for (final AlphaCard c : list) { if (c.getAlphaCardIdentifier().equals(cc.getAlphaCardIdentifier())) { orderedList.add(c); break; } } } list = orderedList; } if (sessionOwn) { session.close(); } return list; }
From source file:apm.modules.sys.service.RoleService.java
License:Open Source License
public List<Role> findAllRole() { //1.??5?/* w w w . j a v a 2 s. c om*/ List<Role> rs = dao.findDefineRoles(); //2.? User user = Users.currentUser(); DetachedCriteria dc = dao.createDetachedCriteria(); dc.createAlias("office", "office"); dc.createAlias("userList", "userList", JoinType.LEFT_OUTER_JOIN); dc.add(dataScopeFilter(user, "office", "userList")); //?????? dc.add(Restrictions.eq(Role.DEL_FLAG, Role.DEL_FLAG_NORMAL)); dc.addOrder(Order.asc("office.code")).addOrder(Order.asc("name")); List<Role> rs2 = dao.find(dc); for (int i = 0; i < rs2.size(); i++) { //?? Role r = rs2.get(i); if (!rs.contains(r)) { rs.add(r); } } return rs; }
From source file:apm.modules.sys.service.UserService.java
License:Open Source License
public Page<User> findUser(Page<User> page, User user) { DetachedCriteria dc = dao.createDetachedCriteria(); User currentUser = Users.currentUser(); dc.createAlias("company", "company"); if (user.getCompany() != null && StringUtils.isNotEmpty(user.getCompany().getId())) { dc.add(Restrictions.or(Restrictions.eq("company.id", user.getCompany().getId()), //? Restrictions.like("company.parentIds", "%," + user.getCompany().getId() + ",%") //?? ));/*from w w w . ja v a 2 s. com*/ } else { dc.add(Restrictions.or(Restrictions.eq("company.id", currentUser.getCompany().getId()), //? Restrictions.like("company.parentIds", "%," + currentUser.getCompany().getId() + ",%") //?? )); } /*dc.createAlias("office", "office"); if (user.getOffice()!=null && StringUtils.isNotEmpty(user.getOffice().getId())){ dc.add(Restrictions.or( Restrictions.eq("office.id", user.getOffice().getId()), // Restrictions.like("office.parentIds", "%,"+user.getOffice().getId()+",%") //? )); }else{ dc.add(Restrictions.or( Restrictions.eq("office.id", currentUser.getOffice().getId()), // Restrictions.like("office.parentIds", "%,"+currentUser.getOffice().getId()+",%") //? )); }*/ // ???? if (!currentUser.isAdmin()) { dc.add(Restrictions.ne("id", "1")); } /*if(user.getOffice() != null && StringUtils.isNotBlank(user.getOffice().getId())){ dc.add(dataScopeFilter(currentUser, "office", "")); }*/ /*dc.add(dataScopeFilter(currentUser, "office", ""));*/ //System.out.println(dataScopeFilterString(currentUser, "office", "")); if (StringUtils.isNotEmpty(user.getLoginName())) { dc.add(Restrictions.like("loginName", "%" + user.getLoginName() + "%")); } if (StringUtils.isNotEmpty(user.getName())) { dc.add(Restrictions.like("name", "%" + user.getName() + "%")); } dc.add(Restrictions.eq(User.DEL_FLAG, User.DEL_FLAG_NORMAL)); if (!StringUtils.isNotEmpty(page.getOrderBy())) { /*dc.addOrder(Order.asc("company.code")).addOrder(Order.asc("office.code")).addOrder(Order.desc("id"));*/ dc.addOrder(Order.asc("company.code")).addOrder(Order.desc("id")); } return dao.find(page, dc); }
From source file:br.ufmg.hc.telessaude.diagnostico.dominio.dao.ExameDAOLocal.java
public List<Exame> consultar(Integer id, String nomePaciente, Date inicio, Date fim) throws DAOException { ArrayList<Criterion> restrict = new ArrayList(); if (id != null) { restrict.add(Restrictions.eq("id", id)); } else {//from ww w . ja v a 2 s . c om if (nomePaciente != null && !nomePaciente.isEmpty()) { restrict.add(Restrictions.ilike("pc.nome", nomePaciente, MatchMode.ANYWHERE)); } if (inicio != null) { restrict.add(Restrictions.ge("datainclusao", inicio)); } if (fim != null) { restrict.add(Restrictions.le("datainclusao", fim)); } } try { final DetachedCriteria crit = DetachedCriteria.forClass(c); final Criteria criteria = crit.getExecutableCriteria(HibernateUtil.currentSession()); crit.createAlias("paciente", "pc"); crit.createAlias("status", "st"); criteria.setProjection(Projections.projectionList().add(Projections.property("id")) .add(Projections.property("pc.nome")).add(Projections.property("pc.datanascimento")) .add(Projections.property("datainclusao")).add(Projections.property("st.nome"))); criteria.addOrder(Order.desc("datainclusao")); for (final Criterion cri : restrict) { criteria.add(cri); } final List<Object[]> arrays = criteria.list(); final List<Exame> exames = new ArrayList<>(); for (Object[] array : arrays) { final Exame exame = new Exame(Integer.parseInt(String.valueOf(array[0]))); exame.setPaciente(new Paciente()); exame.getPaciente().setNome(String.valueOf(array[1])); exame.getPaciente().setDatanascimento((Date) array[2]); exame.setDatainclusao((Date) array[3]); exame.setStatus(new Status()); exame.getStatus().setNome(String.valueOf(array[4])); exames.add(exame); } return exames; } catch (HibernateException ex) { throw new DAOException(ex.getMessage()); } }
From source file:ch.systemsx.cisd.openbis.generic.server.dataaccess.db.EntityPropertyTypeDAO.java
License:Apache License
public void fillTermUsageStatistics(List<VocabularyTermWithStats> termsWithStats, VocabularyPE vocabulary) { assert termsWithStats != null : "Unspecified terms."; assert vocabulary != null : "Unspecified vocabulary."; assert termsWithStats.size() == vocabulary.getTerms() .size() : "Sizes of terms to be filled and vocabulary terms don't match."; Map<Long, VocabularyTermWithStats> termsById = new HashMap<Long, VocabularyTermWithStats>( termsWithStats.size());//from ww w . j a v a 2s. c o m for (VocabularyTermWithStats termWithStats : termsWithStats) { Long id = termWithStats.getTerm().getId(); termsById.put(id, termWithStats); } final DetachedCriteria criteria = DetachedCriteria.forClass(entityKind.getEntityPropertyClass()); // alias is the easiest way to restrict on association using criteria criteria.createAlias("vocabularyTerm", "term"); criteria.add(Restrictions.eq("term.vocabularyInternal", vocabulary)); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.rowCount()); projectionList.add(Projections.groupProperty("term.id")); criteria.setProjection(projectionList); final List<Object[]> results = cast(getHibernateTemplate().findByCriteria(criteria)); for (Object[] result : results) { Integer numberOfUsages = (Integer) result[0]; Long termId = (Long) result[1]; termsById.get(termId).registerUsage(entityKind, numberOfUsages); } }
From source file:chiron.maxscore.service.impl.ClassServiceImpl.java
private DetachedCriteria makeCriteria(Map<String, Object> condition) { DetachedCriteria criteria = DetachedCriteria.forClass(Class.class); if (condition == null) { return criteria; }// ww w .ja va2 s. c om criteria.createAlias("grade", "g"); criteria.createAlias("g.specialty", "s"); criteria.createAlias("s.college", "c"); if (condition.containsKey("college_id")) { criteria.add(Restrictions.eq("c.id", condition.get("college_id"))); } else if (condition.containsKey("specialty_id")) { criteria.add(Restrictions.eq("s.id", condition.get("specialty_id"))); } else if (condition.containsKey("grade_id")) { criteria.add(Restrictions.eq("g.id", condition.get("grade_id"))); } if (condition.containsKey("class_name")) { criteria.add( Restrictions.ilike("className", condition.get("class_name").toString(), MatchMode.ANYWHERE)); } return criteria; }
From source file:chiron.maxscore.service.impl.GradeServiceImpl.java
private DetachedCriteria makeCriteria(Map<String, Object> condition) { DetachedCriteria criteria = DetachedCriteria.forClass(Grade.class); if (condition == null) { return criteria; }//from ww w .j av a 2 s. c om criteria.createAlias("specialty", "s"); criteria.createAlias("s.college", "c"); if (condition.containsKey("college_id")) { criteria.add(Restrictions.eq("c.id", condition.get("college_id"))); } else if (condition.containsKey("specialty_id")) { criteria.add(Restrictions.eq("s.id", condition.get("specialty_id"))); } if (condition.containsKey("grade_name")) { criteria.add( Restrictions.ilike("gradeName", condition.get("grade_name").toString(), MatchMode.ANYWHERE)); } return criteria; }
From source file:chiron.maxscore.service.impl.OptionServiceImpl.java
@Override public List<Option> getRootOptionsByCidAndVer(int cid, int ver) { DetachedCriteria criteria = DetachedCriteria.forClass(OptionMapping.class); criteria.createAlias("course", "c"); criteria.createAlias("option", "o"); criteria.createAlias("parentOption", "p"); criteria.add(Restrictions.isNull("p")); criteria.add(Restrictions.eq("c.id", cid)); criteria.add(Restrictions.eq("optionVer", ver)); // criteria.setProjection(Projections.groupProperty("o.optionGroupId")); // criteria.setProjection(Projections.max("optionVer")); List<OptionMapping> oms = optionMappingDAO.search(0, Integer.MAX_VALUE, criteria); List<Option> options = new ArrayList<>(); for (OptionMapping om : oms) { options.add(om.getOption());/*ww w . j a v a2 s.c o m*/ } return options; }
From source file:chiron.maxscore.service.impl.OptionServiceImpl.java
@Override public List<Option> getOptionsByCidAndVer(int cid, int ver) { DetachedCriteria criteria = DetachedCriteria.forClass(OptionMapping.class); criteria.createAlias("course", "c"); criteria.createAlias("option", "o"); criteria.add(Restrictions.eq("c.id", cid)); criteria.add(Restrictions.eq("optionVer", ver)); // criteria.setProjection(Projections.groupProperty("o.optionGroupId")); // criteria.setProjection(Projections.max("optionVer")); List<OptionMapping> oms = optionMappingDAO.search(0, Integer.MAX_VALUE, criteria); List<Option> options = new ArrayList<>(); for (OptionMapping om : oms) { options.add(om.getOption());/* ww w. j ava 2 s. com*/ } return options; }
From source file:chiron.maxscore.service.impl.SpecialtyServiceImpl.java
private DetachedCriteria makeCriteria(Map<String, Object> condition) { DetachedCriteria criteria = DetachedCriteria.forClass(Specialty.class); if (condition == null) { return criteria; }//from w w w . j a v a2 s . co m if (condition.containsKey("college_id")) { criteria.createAlias("college", "c").add(Restrictions.eq("c.id", condition.get("college_id"))); } if (condition.containsKey("specialty_name")) { criteria.add(Restrictions.ilike("specialtyName", condition.get("specialty_name").toString(), MatchMode.ANYWHERE)); } return criteria; }