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())); }
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); case NOT_EQUALS: if (value.equals("*")) { context = qb.not().having(sfilter.getFieldName()).like((String)value); } else { context = qb.not().having(sfilter.getFieldName()).eq(value);
public void testSampleDomainQuery7() { QueryFactory qf = getQueryFactory(); // all rent payments made from a given account Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("accountId").eq(1) .and().having("description").like("%rent%") .build(); List<Transaction> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getId()); assertEquals(1, list.get(0).getAccountId()); assertTrue(list.get(0).getDescription().contains("rent")); }
public void testLike() { QueryFactory qf = getQueryFactory(); // all rent payments made from a given account Query q = qf.from(getModelFactory().getTransactionImplClass()) .having("description").like("%rent%") .build(); List<Transaction> list = q.list(); assertEquals(1, list.size()); assertEquals(1, list.get(0).getAccountId()); assertEquals(1500, list.get(0).getAmount(), 0); }
/** * Test that 'like' accepts only % and _ as wildcards. */ public void testLuceneWildcardsAreEscaped() { QueryFactory qf = getQueryFactory(); // use a true wildcard Query q1 = qf.from(getModelFactory().getUserImplClass()) .having("name").like("J%n") .build(); assertEquals(1, q1.list().size()); // use an improper wildcard Query q2 = qf.from(getModelFactory().getUserImplClass()) .having("name").like("J*n") .build(); assertEquals(0, q2.list().size()); // use a true wildcard Query q3 = qf.from(getModelFactory().getUserImplClass()) .having("name").like("Jo_n") .build(); assertEquals(1, q3.list().size()); // use an improper wildcard Query q4 = qf.from(getModelFactory().getUserImplClass()) .having("name").like("Jo?n") .build(); assertEquals(0, q4.list().size()); }
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 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 testOr4() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .orderBy("surname", SortOrder.DESC) .having("gender").eq(User.Gender.MALE) .or().having("name").eq("Spider") .and().having("gender").eq(User.Gender.FEMALE) .or().having("surname").like("%oe%") .build(); List<User> list = q.list(); assertEquals(2, list.size()); assertEquals("Woman", list.get(0).getSurname()); assertEquals("Doe", list.get(1).getSurname()); }
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 testSampleDomainQuery16() { QueryFactory qf = getQueryFactory(); // third batch of 10 transactions for a given account Query q = qf.from(getModelFactory().getTransactionImplClass()) .startOffset(20).maxResults(10) .orderBy("id", SortOrder.ASC) .having("accountId").eq(2).and().having("description").like("Expensive%") .build(); List<Transaction> list = q.list(); assertEquals(50, q.getResultSize()); assertEquals(10, list.size()); for (int i = 0; i < 10; i++) { assertEquals("Expensive shoes " + (20 + i), list.get(i).getDescription()); } }