List of usage examples for org.hibernate.criterion Restrictions isNull
public static Criterion isNull(String propertyName)
From source file:marmar.ganaderia_fxml.hibernate.ConectorBovino.java
public ArrayList<Bovino> getBovinosFiltrados(String sexo, String estado, String arete, Raza raza, String edad, int meses) { ArrayList<Bovino> result = null; Session session = HibernateConector.factory.openSession(); Transaction tx = null;/* w w w.ja va2s. co m*/ try { tx = session.beginTransaction(); Criteria cr = session.createCriteria(Bovino.class); //filtrar el sexo if (sexo.charAt(0) == 'A') { } else { Criterion c = Restrictions.ilike("sexo", sexo); cr.add(c); } //filtrar el estado del animal if (estado.equalsIgnoreCase("Todo Estado")) { } else if (estado.equalsIgnoreCase("Vendidas")) { Criterion fm = Restrictions.isNull("fecha_muerte"); Criterion v = Restrictions.isNotNull("venta"); cr.add(fm); cr.add(v); } else if (estado.equalsIgnoreCase("Muertas")) { Criterion fm = Restrictions.isNotNull("fecha_muerte"); Criterion v = Restrictions.isNull("venta"); cr.add(fm); cr.add(v); } else { //vivas Criterion fm = Restrictions.isNull("fecha_muerte"); Criterion v = Restrictions.isNull("venta"); cr.add(fm); cr.add(v); } //filtro para los aretes if (arete.equalsIgnoreCase("Todas")) { } else if (arete.equalsIgnoreCase("Con Arete")) { Criterion c = Restrictions.isNotNull("num_arete"); cr.add(c); } else { Criterion c = Restrictions.isNull("num_arete"); cr.add(c); } result = (ArrayList) cr.list(); for (Bovino b : result) { Hibernate.initialize(b.getRaza()); Hibernate.initialize(b.getVenta()); Hibernate.initialize(b.getVacunas()); b.getVacunas().size(); } tx.commit(); } catch (HibernateException he) { if (tx != null) { tx.rollback(); } System.err.println(he.getMessage()); he.printStackTrace(); } finally { session.close(); } if (result != null) { ArrayList<Bovino> filtrados = new ArrayList<>(result.size()); if (edad.equalsIgnoreCase("Toda Edad")) { return result; } else if (edad.equalsIgnoreCase("Mayor o Igual Que")) { for (Bovino b : result) { if (b.getEdad() >= meses) { filtrados.add(b); } } } else { for (Bovino b : result) { if (b.getEdad() <= meses) { filtrados.add(b); } } } return filtrados; } return result; }
From source file:me.repository.office.OfficeDao.java
License:Apache License
public List<Office> findOfficesBy(String id) { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Office.class); if (!StringUtils.isEmpty(id)) { detachedCriteria.add(Restrictions.eq("parentId", Long.valueOf(id))); } else {/*from www .ja va 2 s . c o m*/ detachedCriteria.add(Restrictions.isNull("parentId")); } return find(detachedCriteria); }
From source file:mitm.common.security.ca.hibernate.CertificateRequestDAO.java
License:Open Source License
@SuppressWarnings("unchecked") public CertificateRequestEntity getNextRequest(Date notAfter) { DetachedCriteria minDateCriteria = createDetachedCriteria(CertificateRequestEntity.ENTITY_NAME); /*//from w w w . j a v a 2s . c o m * Create a criteria to get the oldest nextUpdate */ minDateCriteria.setProjection(Projections.min(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME)); Criteria criteria = createCriteria(CertificateRequestEntity.ENTITY_NAME); criteria.add(Restrictions.or( Property.forName(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME).eq(minDateCriteria), Restrictions.isNull(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME))); /* * We only want entries that are older than notAfter or have no nextUpdate yet. The reason for notAfter is * that we do not want to try too fast in succession. By setting notAfter to the current date we will only * get entries for which the update is long overdue. */ criteria.add(Restrictions.or(Restrictions.le(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME, notAfter), Restrictions.isNull(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME))); addSortOnCreationDate(criteria); CertificateRequestEntity next = null; List<CertificateRequestEntity> found = criteria.list(); if (found != null && found.size() > 0) { next = found.get(0); } return next; }
From source file:mitm.common.sms.hibernate.SMSGatewayDAO.java
License:Open Source License
public int getAvailableCount(Date notAfter) { Criteria criteria = createCriteria(entityName); if (notAfter != null) { /*//from ww w .j av a 2 s .com * We only want entries that are older than notAfter or have no dateLastTry yet */ criteria.add( Restrictions.or(Restrictions.le(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn(), notAfter), Restrictions.isNull(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn()))); } criteria.setProjection(Projections.rowCount()); return (Integer) criteria.uniqueResult(); }
From source file:mitm.common.sms.hibernate.SMSGatewayDAO.java
License:Open Source License
/** * Returns the entry that has the oldest try date and not after notAfter. If there is no such entry null * is returned./*w w w . j a va2 s . c om*/ */ @SuppressWarnings("unchecked") public SMSGatewayEntity getNextAvailable(Date notAfter) { DetachedCriteria minDateCriteria = createDetachedCriteria(entityName); /* * Create a criteria to get the oldest dateLastTry */ minDateCriteria.setProjection(Projections.min(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn())); Criteria criteria = createCriteria(entityName); criteria.add(Restrictions.or( Property.forName(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn()).eq(minDateCriteria), Restrictions.isNull(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn()))); /* * We only want entries that are older than notAfter or have no dateLastTry yet. The reason for notAfter is * that we do not want to try too fast in succession. By setting notAfter in the past we can make sure that * we only get entries that are not recently been updated. */ criteria.add(Restrictions.or(Restrictions.le(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn(), notAfter), Restrictions.isNull(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn()))); SMSGatewayEntity next = null; List<SMSGatewayEntity> found = criteria.list(); if (found != null && found.size() > 0) { next = found.get(0); } return next; }
From source file:models.db.acentera.impl.ProjectImpl.java
License:Open Source License
public static List<ProjectUserTags> getUserProjectTags(UserProjects up) { Session s = (Session) HibernateSessionFactory.getSession(); Criteria criteria = s.createCriteria(ProjectUserTags.class).createAlias("projectTags", "tags"); List<ProjectUserTags> tags = (List<ProjectUserTags>) criteria .add(Restrictions.and(Restrictions.eq("userProjects", up), Restrictions.isNull("disableDate"), Restrictions.eq("tags.type", "quota"))) .list();/*from w ww . j a va 2 s .c om*/ return tags; }
From source file:models.db.acentera.impl.ProjectImpl.java
License:Open Source License
public static Set<ProjectTags> getUserProjectRoles(UserProjects up) { Session s = (Session) HibernateSessionFactory.getSession(); Criteria criteria = s.createCriteria(ProjectUserRoles.class).createAlias("projectTags", "tags"); List<ProjectUserRoles> userprojectroles = (List<ProjectUserRoles>) criteria .add(Restrictions.and(Restrictions.eq("userProjects", up), Restrictions.isNull("disableDate"), Restrictions.eq("tags.type", "role"))) .list();/*from ww w .java 2 s .c o m*/ Logger.debug("GOT ROLES : " + userprojectroles); Set<ProjectTags> roles = new HashSet( extract(userprojectroles, on(ProjectUserRoles.class).getProjectTags())); Logger.debug("GOT A ROLES : " + roles); return roles; }
From source file:monasca.api.infrastructure.persistence.hibernate.AlarmDefinitionSqlRepoImpl.java
License:Apache License
@Override public String exists(final String tenantId, final String name) { logger.trace(ORM_LOG_MARKER, "exists(...) entering..."); StatelessSession session = null;/* w w w . ja v a2 s .c o m*/ try { session = sessionFactory.openStatelessSession(); List<?> ids = session.createCriteria(AlarmDefinitionDb.class).add(Restrictions.eq("tenantId", tenantId)) .add(Restrictions.eq("name", name)).add(Restrictions.isNull("deletedAt")) .setProjection(Projections.property("id")).setMaxResults(1).list(); final String existingId = CollectionUtils.isEmpty(ids) ? null : (String) ids.get(0); if (null == existingId) { logger.debug(ORM_LOG_MARKER, "No AlarmDefinition matched tenantId={} and name={}", tenantId, name); } return existingId; } finally { if (session != null) { session.close(); } } }
From source file:monasca.api.infrastructure.persistence.hibernate.AlarmSqlRepoImpl.java
License:Apache License
@Override public void deleteById(String tenantId, String id) { logger.trace(ORM_LOG_MARKER, "deleteById(...) entering"); Transaction tx = null;//from ww w . j a v a 2 s .c o m Session session = null; try { session = sessionFactory.openSession(); tx = session.beginTransaction(); final long result = (Long) session.createCriteria(AlarmDb.class, "a") .createAlias("alarmDefinition", "ad") .add(Restrictions.conjunction(Restrictions.eq("a.id", id), Restrictions.eq("ad.tenantId", tenantId), Restrictions.eqProperty("a.alarmDefinition.id", "ad.id"), Restrictions.isNull("ad.deletedAt"))) .setProjection(Projections.count("a.id")).setReadOnly(true).uniqueResult(); // This will throw an EntityNotFoundException if Alarm doesn't exist or has a different tenant // id if (result < 1) { throw new EntityNotFoundException("No alarm exists for %s", id); } // delete alarm session.getNamedQuery(AlarmDb.Queries.DELETE_BY_ID).setString("id", id).executeUpdate(); tx.commit(); tx = null; } catch (Exception e) { this.rollbackIfNotNull(tx); throw e; } finally { if (session != null) { session.close(); } } }
From source file:monasca.thresh.infrastructure.persistence.hibernate.AlarmDefinitionSqlImpl.java
License:Apache License
@Override @SuppressWarnings("unchecked") public List<AlarmDefinition> listAll() { Session session = null;/*from w w w.j a v a2 s .c om*/ List<AlarmDefinition> alarmDefinitions = null; try { session = sessionFactory.openSession(); List<AlarmDefinitionDb> alarmDefDbList = session.createCriteria(AlarmDefinitionDb.class) .add(Restrictions.isNull("deletedAt")).addOrder(Order.asc("createdAt")).setReadOnly(true) .list(); if (alarmDefDbList != null) { alarmDefinitions = Lists.newArrayListWithExpectedSize(alarmDefDbList.size()); for (final AlarmDefinitionDb alarmDefDb : alarmDefDbList) { final Collection<String> matchBy = alarmDefDb.getMatchByAsCollection(); final boolean actionEnable = alarmDefDb.isActionsEnabled(); alarmDefinitions.add(new AlarmDefinition(alarmDefDb.getId(), alarmDefDb.getTenantId(), alarmDefDb.getName(), alarmDefDb.getDescription(), AlarmExpression.of(alarmDefDb.getExpression()), alarmDefDb.getSeverity().name(), actionEnable, this.findSubExpressions(session, alarmDefDb.getId()), matchBy.isEmpty() ? Collections.<String>emptyList() : Lists.newArrayList(matchBy))); session.evict(alarmDefDb); } } return alarmDefinitions == null ? Collections.<AlarmDefinition>emptyList() : alarmDefinitions; } finally { if (session != null) { session.close(); } } }