/** * Test querying for a field - direct access to field. */ public void testField() throws Exception { QueryFactory queryFactory = Search.getQueryFactory(cache); Query query = queryFactory.from(Person.class) .having("driverLicenseId").eq("ZZ3141592") .build(); List<Person> matches = query.list(); assertEquals(1, matches.size()); }
case EQUALS: if (value.equals("*")) { context = qb.having(mfilter.getFieldName()).like(value); } else { context = qb.having(mfilter.getFieldName()).eq(value); case NOT_EQUALS: if (value.equals("*")) { context = qb.not().having(mfilter.getFieldName()).like(value); } else { context = qb.not().having(mfilter.getFieldName()).eq(value); case EQUALS: if (value.equals("*")) { context = qb.having(sfilter.getFieldName()).like((String)value); } else { context = qb.having(sfilter.getFieldName()).eq(value); context = qb.not().having(sfilter.getFieldName()).like((String)value); } else { context = qb.not().having(sfilter.getFieldName()).eq(value); context = qb.having(sfilter.getFieldName()).lt(value); break; case LESS_OR_EQUAL: context = qb.having(sfilter.getFieldName()).lte(value); break; case GREATER: context = qb.having(sfilter.getFieldName()).gt(value);
public void testSingleIN() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("surname").in("Man") .and() .having("gender").eq(User.Gender.MALE) .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(2, list.get(0).getId()); assertEquals("Man", list.get(0).getSurname()); assertEquals(User.Gender.MALE, list.get(0).getGender()); } }
public void testOr5() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(User.Gender.MALE) .or().having("name").eq("Spider") .or().having("gender").eq(User.Gender.FEMALE) .and().having("surname").like("%oe%") .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("John", list.get(0).getName()); }
public void testSampleDomainQuery18() { QueryFactory qf = getQueryFactory(); // all transactions of account with id 2 which have an amount larger than 1600 or their description contains the word 'rent' Query q = qf.from(getModelFactory().getTransactionImplClass()) .orderBy("description", SortOrder.ASC) .having("accountId").eq(1) .and(qf.having("amount").gt(1600) .or().having("description").like("%rent%")).build(); List<Transaction> list = q.list(); assertEquals(2, list.size()); assertEquals("Birthday present", list.get(0).getDescription()); assertEquals("Feb. rent payment", list.get(1).getDescription()); }
public void testSampleDomainQuery10() { QueryFactory qf = getQueryFactory(); // all the transactions for a an account having amount greater than a given amount Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("accountId").eq(2) .and().having("amount").gt(40) .build(); List<Transaction> list = q.list(); assertEquals(52, list.size()); assertTrue(list.get(0).getAmount() > 40); assertTrue(list.get(1).getAmount() > 40); }
.having("age").lte(30) .and().having("name").eq("John").or().having("name").eq("Johny") .build(); ContinuousQuery<Object, Object> cq1 = Search.getContinuousQuery(cache()); .having("age").lte(30).or().having("name").eq("Joe") .build(); ContinuousQuery<Object, Object> cq2 = Search.getContinuousQuery(cache());
/** * Test querying for an inherited indexed field - direct inherited field access. */ public void testInheritedField() throws Exception { QueryFactory queryFactory = Search.getQueryFactory(cache); Query query = queryFactory.from(Person.class) .having("age").lte(52) .build(); List<Person> matches = query.list(); assertEquals(1, matches.size()); }
@Test(expectedExceptions = ParsingException.class, expectedExceptionsMessageRegExp = "ISPN028515: Cannot have aggregate functions in the WHERE clause : SUM.") public void testGroupBy7() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .select(sum("age")) .having(sum("age")).gt(10) .build(); List<Object[]> list = q.list(); assertEquals(2, list.size()); assertEquals(3, list.get(0).length); assertEquals(3, list.get(1).length); assertEquals(1500d, (Double) list.get(0)[2], 0.0001d); assertEquals(45d, (Double) list.get(1)[2], 0.0001d); }
@Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "ISPN014802: 'from' must be an instance of java.lang.Comparable") public void testBetweenArgsAreComparable() { QueryFactory qf = getQueryFactory(); qf.from(getModelFactory().getTransactionImplClass()) .having("date").between(new Object(), new Object()) .build(); }
@Test(expectedExceptions = IllegalArgumentException.class) public void testIn3() { QueryFactory qf = getQueryFactory(); qf.from(getModelFactory().getUserImplClass()).having("id").in(Collections.emptySet()); }
private Query makeQuery(Cache c) { QueryFactory qf = Search.getQueryFactory(c); return qf.from(Person.class) .having("age").gte(18) .build(); } }
public void testSampleDomainQuery22() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .not().having("addresses.postCode").like("%123%").build(); List<User> list = q.list(); assertEquals(2, list.size()); assertTrue(Arrays.asList(2, 3).contains(list.get(0).getId())); assertTrue(Arrays.asList(2, 3).contains(list.get(1).getId())); }
public void testEqHybridQueryWithPredicateOptimisation() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("notes").like("%ipsum%") .and(qf.having("name").eq("John").or().having("name").eq("Jane")) .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("Lorem ipsum dolor sit amet", list.get(0).getNotes()); }
public void testLteOnFieldWithNullToken() { QueryFactory qf = getQueryFactory(); // all the transactions that happened in January 2013 Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("description").lte("-Popcorn") .build(); List<Transaction> list = q.list(); assertEquals(1, list.size()); assertEquals("-Popcorn", list.get(0).getDescription()); }
public void testGt() { QueryFactory qf = getQueryFactory(); // all the transactions greater than a given amount Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("amount").gt(1500) .build(); List<Transaction> list = q.list(); assertEquals(1, list.size()); assertTrue(list.get(0).getAmount() > 1500); }