@Test public void testStartsWith() { Criteria criteria = new Criteria("field_1").startsWith("start"); Assert.assertEquals("field_1", criteria.getField().getName()); assertCriteriaEntry(criteria.getCriteriaEntries(), 0, OperationKey.STARTS_WITH, "start"); }
@Test public void testContains() { Criteria criteria = new Criteria("field_1").contains("contains"); Assert.assertEquals("field_1", criteria.getField().getName()); assertCriteriaEntry(criteria.getCriteriaEntries(), 0, OperationKey.CONTAINS, "contains"); }
public static LocationRequest createFromDeprecatedCriteria( Criteria criteria, long minTime, float minDistance, boolean singleShot) { int quality; if (minTime < 0) { minTime = 0; } if (minDistance < 0.0f) { minDistance = 0.0f; } switch (criteria.getAccuracy()) { case GL10.GL_TRUE /*1*/: quality = ACCURACY_FINE; break; case GL10.GL_LINE_LOOP /*2*/: quality = ACCURACY_BLOCK; break; default: switch (criteria.getPowerRequirement()) { case GL10.GL_LINE_STRIP /*3*/: break; } quality = POWER_LOW; break; } LocationRequest request = new LocationRequest() .setQuality(quality) .setInterval(minTime) .setFastestInterval(minTime) .setSmallestDisplacement(minDistance); if (singleShot) { request.setNumUpdates(1); } return request; }
public List<T> findAll(Integer number, Integer offset, String orderByPropertyName, boolean asc) { Session session = openSession(true); List<T> results = Lists.newArrayList(); try { Criteria criteria = criteria().setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); if (number != 1) { criteria.setFirstResult(number - 1); } if (offset != 0) { criteria.setMaxResults(offset); } if (asc) { criteria.addOrder(Order.asc(orderByPropertyName)); } else { criteria.addOrder(Order.desc(orderByPropertyName)); } results = list(criteria); for (T result : results) { result.init(); } commitTransaction(session, true); } catch (Exception e) { rollbackTransaction(session, true); } finally { closeSession(session); } return results; }
/** * 根据Criterion条件创建Criteria. * * <p>本类封装的find()函数全部默认返回对象类型为T,当不为T时使用本函数. * * @param criterions 数量可变的Criterion. */ protected Criteria createCriteria(final Criterion... criterions) { Criteria criteria = getSession().createCriteria(entityClass); for (Criterion c : criterions) { criteria.add(c); } return criteria; }
/** Add order directly to criteria. */ private static void addOrder(Criteria c, String sort, String order, boolean ignoreCase) { if (ORDER_DESC.equals(order)) { c.addOrder(ignoreCase ? Order.desc(sort).ignoreCase() : Order.desc(sort)); } else { c.addOrder(ignoreCase ? Order.asc(sort).ignoreCase() : Order.asc(sort)); } }
@Test public void testEndsWith() { Criteria criteria = new Criteria("field_1").endsWith("end"); Assert.assertEquals("field_1", criteria.getField().getName()); assertCriteriaEntry(criteria.getCriteriaEntries(), 0, OperationKey.ENDS_WITH, "end"); }
public String buildGetObjectValuePairsByJoinStatement( List<Criteria> alCriterias, int nAxisId, JoinStatement joinStatementAllPositions, String todayFormatted, boolean visibilitySensitive) { StringBuilder sSQLStatement = new StringBuilder(1000); sSQLStatement .append("SELECT CMC.internalContentId") .append(", CEC.") .append(AXIS_COLUMN) .append(nAxisId) .append(", CMI.componentId"); sSQLStatement .append(" FROM ") .append(CLASSIFICATION_TABLE) .append(" CEC, ") .append(joinStatementAllPositions.getTable(0)) .append(" CML, SB_ContentManager_Content CMC, SB_ContentManager_Instance CMI "); sSQLStatement .append(" WHERE CEC.") .append(POSITION_ID_COLUMN) .append(" = CML.") .append(joinStatementAllPositions.getJoinKey(0)); sSQLStatement .append(" AND CEC.") .append(SILVEROBJECT_ID_COLUMN) .append(" = CMC.silverContentId "); sSQLStatement.append(" AND CMC.contentInstanceId").append(" = CMI.instanceId "); String whereClause = joinStatementAllPositions.getWhere(); if (isDefined(whereClause)) { sSQLStatement.append(" AND ").append(whereClause); } for (Criteria criteria : alCriterias) { if (criteria.getValue() != null) { sSQLStatement .append(" AND (CEC.") .append(AXIS_COLUMN) .append(criteria.getAxisId()) .append(" LIKE '") .append(criteria.getValue()) .append("%')"); } } // Set the pertinent axiom sSQLStatement.append(" AND (CEC.").append(AXIS_COLUMN).append(nAxisId).append(" IS NOT NULL)"); // Set the visibility constraints --> en faire une fonction sSQLStatement .append(" AND ('") .append(todayFormatted) .append("' between CMC.beginDate AND CMC.endDate)"); if (visibilitySensitive) { sSQLStatement.append(" AND (CMC.isVisible = 1 )"); } return sSQLStatement.toString(); }
@Test public void testMultipleIs() { Criteria criteria = new Criteria("field_1").is("is").is("another is"); Assert.assertEquals("field_1", criteria.getField().getName()); assertCriteriaEntry(criteria.getCriteriaEntries(), 0, OperationKey.EQUALS, "is"); assertCriteriaEntry(criteria.getCriteriaEntries(), 1, OperationKey.EQUALS, "another is"); }
public List<T> findByMap(String hql, final Map<String, Object> params) { // Query query = getSession().createQuery(hql); // for(String field:params.keySet()) // query.setParameter(field,params.get(field)); Criteria criteria = getSession().createCriteria(clazz); criteria.add(Restrictions.allEq(params)); return criteria.list(); }
@Test public void testOrWithCriteria() { Criteria criteria = new Criteria("field_1").startsWith("start"); Criteria orCriteria = new Criteria("field_2").endsWith("end").startsWith("start2"); criteria = criteria.or(orCriteria); Assert.assertEquals(" OR ", criteria.getConjunctionOperator()); Assert.assertEquals(2, criteria.getCriteriaChain().size()); }
protected final Criteria<?> findCriterion(final String property) { for (final Criteria<?> criterion : this.criteria) { if (criterion.getPrefix().equals(property)) { return criterion; } } return null; }
/** Use this inside subclasses as a convenience method. */ @SuppressWarnings("unchecked") protected List<T> findByCriteria(Criterion... criterion) { Criteria crit = getSession().createCriteria(getEntityClass()); for (Criterion c : criterion) { crit.add(c); } return crit.list(); }
/** Use this inside subclasses as a convenience method. */ @SuppressWarnings("unchecked") protected List<T> findByCriteria(Criterion... criterion) { Criteria crit = getSession().createCriteria(getPersistentClass()); for (Criterion c : criterion) { crit.add(c); } crit.setCacheable(queriesCached); return crit.list(); }
/** * Returns true if a persisted record exsits for the given id. * * @param id primary key of entity * @return true if entity exists for id, false if entity does not exist */ public boolean isIdPersisted(Serializable id) { Criteria criteria = getSession() .createCriteria(getPersistentClass()) .add(Restrictions.idEq(id)) .setProjection(Projections.rowCount()); return (criteria.uniqueResult() != null && ((Long) criteria.uniqueResult()) > 0); }
public boolean isChangePersisted(PersistentChange change) { Criteria criteria = getSession() .createCriteria(PersistentChange.class) .add(Restrictions.eq("hash", change.getHash())) .add(Restrictions.eq("repositoryId", change.getRepositoryId())); Integer count = (Integer) criteria.setProjection(Projections.rowCount()).uniqueResult(); return count > 0; }
@Override public boolean test(Object owner) { for (Criteria c : expressions) { if (c.test(owner)) { return true; } } return false; }
public List<BlacklistDTO> findByUser(Integer userId) { Criteria criteria = getSession() .createCriteria(BlacklistDTO.class) .createAlias("user", "u") .add(Restrictions.eq("u.id", userId)); return criteria.list(); }
@Override public <T extends GettableById> Number count(Class<T> currentClass, Criterion... restrictions) { validateTransaction(); Criteria criteria = getSession().createCriteria(currentClass); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); criteria.setProjection(Projections.rowCount()); for (Criterion restriction : restrictions) criteria.add(restriction); return ((Number) criteria.uniqueResult()); }
@Test public void testWithin() { GeoLocation location = new GeoLocation(48.303056, 14.290556); Criteria criteria = new Criteria("field_1").within(location, new Distance(5)); CriteriaEntry entry = getCriteriaEntryByPosition(criteria.getCriteriaEntries(), 0); Assert.assertEquals(OperationKey.WITHIN.getKey(), entry.getKey()); Assert.assertEquals(location, ((Object[]) entry.getValue())[0]); Assert.assertEquals(5, ((Distance) ((Object[]) entry.getValue())[1]).getValue(), 0); }
@SuppressWarnings("unchecked") protected T findByCriteriaSingle(Criterion... criterion) { Criteria crit = getSession().createCriteria(getPersistentClass()); for (Criterion c : criterion) { crit.add(c); } crit.setCacheable(queriesCached); return (T) crit.uniqueResult(); }
@Override public String build() { String ret = " AND "; if (left != null) ret = left.build() + ret; if (right != null) ret = ret + right.build(); return "(" + ret.trim() + ")"; }
@Override public List<Object> buildParameters() { List<Object> ret = new ArrayList<Object>(); if (left != null) ret.addAll(left.buildParameters()); if (right != null) ret.addAll(right.buildParameters()); return ret; }
@Override public <T extends GettableById> Collection<Integer> getIds( Class<T> currentClass, Criterion... restrictions) { validateTransaction(); Criteria criteria = getSession().createCriteria(currentClass); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); criteria.setProjection(Projections.id()); for (Criterion restriction : restrictions) criteria.add(restriction); return criteria.list(); }
@Test public void testGreaterThanEqual() { Criteria criteria = new Criteria("field_1").greaterThanEqual(100); CriteriaEntry entry = getCriteriaEntryByPosition(criteria.getCriteriaEntries(), 0); Assert.assertEquals(OperationKey.BETWEEN.getKey(), entry.getKey()); Assert.assertEquals(100, ((Object[]) entry.getValue())[0]); Assert.assertEquals(null, ((Object[]) entry.getValue())[1]); Assert.assertTrue(((Boolean) ((Object[]) entry.getValue())[2]).booleanValue()); Assert.assertTrue(((Boolean) ((Object[]) entry.getValue())[3]).booleanValue()); }
@Test public void testBetweenExcludingUpperBound() { Criteria criteria = new Criteria("field_1").between(100, 200, true, false); CriteriaEntry entry = getCriteriaEntryByPosition(criteria.getCriteriaEntries(), 0); Assert.assertEquals(OperationKey.BETWEEN.getKey(), entry.getKey()); Assert.assertEquals(100, ((Object[]) entry.getValue())[0]); Assert.assertEquals(200, ((Object[]) entry.getValue())[1]); Assert.assertTrue(((Boolean) ((Object[]) entry.getValue())[2]).booleanValue()); Assert.assertFalse(((Boolean) ((Object[]) entry.getValue())[3]).booleanValue()); }
@Test public void testExpression() { Criteria criteria = new Criteria("field_1").expression("(have fun using +solr && expressions*)"); assertCriteriaEntry( criteria.getCriteriaEntries(), 0, OperationKey.EXPRESSION, "(have fun using +solr && expressions*)"); }
@Test public void testCriteriaChain() { Criteria criteria = new Criteria("field_1").startsWith("start").endsWith("end").contains("contains").is("is"); Assert.assertEquals("field_1", criteria.getField().getName()); assertCriteriaEntry(criteria.getCriteriaEntries(), 0, OperationKey.STARTS_WITH, "start"); assertCriteriaEntry(criteria.getCriteriaEntries(), 1, OperationKey.ENDS_WITH, "end"); assertCriteriaEntry(criteria.getCriteriaEntries(), 2, OperationKey.CONTAINS, "contains"); assertCriteriaEntry(criteria.getCriteriaEntries(), 3, OperationKey.EQUALS, "is"); }
/** * Checks whether the given Criteria is satisfied at a given interval, until either the criteria * is satisfied, or the specified maxTimeoutMs number of ms has elapsed. * * @param criteria The Criteria that will be checked. * @param maxTimeoutMs The maximum number of ms that this check will be performed for before * timeout. * @param checkIntervalMs The number of ms between checks. * @return true iff checking has ended with the criteria being satisfied. * @throws InterruptedException */ public static boolean pollForCriteria(Criteria criteria, long maxTimeoutMs, long checkIntervalMs) throws InterruptedException { boolean isSatisfied = criteria.isSatisfied(); long startTime = SystemClock.uptimeMillis(); while (!isSatisfied && SystemClock.uptimeMillis() - startTime < maxTimeoutMs) { Thread.sleep(checkIntervalMs); isSatisfied = criteria.isSatisfied(); } return isSatisfied; }
private <P> Criteria buildProjectionCriteria( Class<P> projectClass, Criteria criteria, Projection projections, boolean distinctResult) { if (distinctResult) { criteria.setProjection(Projections.distinct(projections)); } else { criteria.setProjection(projections); } return criteria.setResultTransformer(Transformers.aliasToBean(projectClass)); }