/** * 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()); }
public void testOrderByInAggregationQueryMustAcceptRepeatedProperty() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .select(avg("age"), property("name")) .having("name").gt("A") .groupBy("name") .having(max("addresses.street")).gt("A") .orderBy(min("addresses.street")) .build(); List<Object[]> list = q.list(); assertEquals(2, list.size()); assertEquals(2, list.get(0).length); assertNull(list.get(0)[0]); assertEquals("Spider", list.get(0)[1]); assertEquals(22.0, list.get(1)[0]); assertEquals("John", list.get(1)[1]); }
public void testSampleDomainQuery20() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .not().having("addresses.postCode").in("X1234").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())); }
/** * Using grouping and aggregation with event filters is not allowed. */ @Test(expectedExceptions = ParsingException.class, expectedExceptionsMessageRegExp = ".*ISPN028509:.*") public void testDisallowGroupingAndAggregation() { Query query = Search.getQueryFactory(cache(0)).from(Person.class) .having("age").gte(20) .select(max("age")) .build(); cache(0).addListener(new EntryListener(), Search.makeFilter(query), null); }
public void testNotStoredProjection() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getTransactionImplClass()) .select("id", "description") .having("id").gte(98) .orderBy("id") .build(); List<Object[]> list = q.list(); assertEquals(2, list.size()); assertEquals(2, list.get(0).length); assertEquals(98, list.get(0)[0]); assertEquals("Expensive shoes 48", list.get(0)[1]); assertEquals(2, list.get(1).length); assertEquals(99, list.get(1)[0]); assertEquals("Expensive shoes 49", list.get(1)[1]); }
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 testSampleDomainQuery21() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .not().having("addresses").isNull().build(); List<User> list = q.list(); assertEquals(2, list.size()); assertTrue(Arrays.asList(1, 2).contains(list.get(0).getId())); assertTrue(Arrays.asList(1, 2).contains(list.get(1).getId())); }
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()); }
/** * Using grouping and aggregation with event filters is not allowed. */ @Test(expectedExceptions = ParsingException.class, expectedExceptionsMessageRegExp = ".*ISPN028509:.*") public void testDisallowGroupingAndAggregation() { Query query = Search.getQueryFactory(cache()).from(Person.class) .having("age").gte(20) .select(max("age")) .build(); cache().addListener(new EntryListener(), Search.makeFilter(query), null); }
public void testSampleDomainQuery24() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .not().having("id").between(1, 2).includeLower(false) .build(); List<User> list = q.list(); assertEquals(2, list.size()); assertTrue(Arrays.asList(1, 3).contains(list.get(0).getId())); assertTrue(Arrays.asList(1, 3).contains(list.get(1).getId())); }
public void testNotIndexedProjection() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getTransactionImplClass()) .select("id", "isValid") .having("id").gte(98) .orderBy("id") .build(); List<Object[]> list = q.list(); assertEquals(2, list.size()); assertEquals(2, list.get(0).length); assertEquals(98, list.get(0)[0]); assertEquals(true, list.get(0)[1]); assertEquals(2, list.get(1).length); assertEquals(99, list.get(1)[0]); assertEquals(true, list.get(1)[1]); }
public void testSampleDomainQuery19() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("addresses.postCode").in("ZZ", "X1234").build(); List<User> list = q.list(); assertEquals(2, list.size()); assertTrue(Arrays.asList(1, 2).contains(list.get(0).getId())); assertTrue(Arrays.asList(1, 2).contains(list.get(1).getId())); }
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())); }