public void testSampleDomainQuery11() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq("John") .and().having("addresses.postCode").eq("X1234") .and(qf.having("accountIds").eq(1)) .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("Doe", list.get(0).getSurname()); }
@Override @Measure public void clearAllIndexedPathInStore( ArtifactStore store ) { StoreKey sk = store.getKey(); long total = iterateRemove( () -> queryFactory.from( IndexedStorePath.class ) .maxResults( ITERATE_RESULT_SIZE ) .having( "packageType" ) .eq( sk.getPackageType() ) .and() .having( "storeType" ) .eq( sk.getType().name() ) .and() .having( "storeName" ) .eq( sk.getName() ) .toBuilder() .build() ); logger.trace( "Cleared all indices with group: {}, size: {}", sk, total ); }
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()); }
@Override public Set<String> getMissing( final Location location ) { logger.debug( "[NFC] getMissing for {} start", location ); Set<String> paths = new HashSet<>(); Query query = queryFactory.from( NfcConcreteResourceWrapper.class ) .maxResults( maxResultSetSize ) .having( "location" ) .eq( ( (KeyedLocation) location ).getKey().toString() ) .toBuilder() .build(); List<NfcConcreteResourceWrapper> matches = query.list(); matches.forEach( resource -> paths.add( resource.getPath() )); logger.debug( "[NFC] getMissing complete, count: {}", matches.size() ); return paths; }
public void testNot11() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .not(qf.not( qf.having("name").eq("John") .or(qf.having("surname").eq("Man")))) .build(); List<User> list = q.list(); assertEquals(2, list.size()); assertNotEquals(list.get(0).getSurname(), "Woman"); }
/** * Get missing entries via pagination. * @param location * @param pageIndex starts from 0 * @param pageSize how many entries in each page * @return */ @Override public Set<String> getMissing( Location location, int pageIndex, int pageSize ) { logger.debug( "[NFC] getMissing for {} start, pageIndex: {}, pageSize: {}", location, pageIndex, pageSize ); Set<String> paths = new HashSet<>(); pageSize = getProperPageSize(pageSize); long offset = pageIndex * pageSize; Query query = queryFactory.from( NfcConcreteResourceWrapper.class ) .startOffset( offset ) .maxResults( pageSize ) .orderBy( "path" ) .having( "location" ) .eq( ( (KeyedLocation) location ).getKey().toString() ) .toBuilder() .build(); List<NfcConcreteResourceWrapper> matches = query.list(); matches.forEach( resource -> paths.add( resource.getPath() ) ); logger.debug( "[NFC] getMissing complete, count: {}", matches.size() ); return paths; }
public void testNot10() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .not().not( qf.having("name").eq("John") .or(qf.having("surname").eq("Man"))) .build(); List<User> list = q.list(); assertEquals(2, list.size()); assertNotEquals(list.get(0).getSurname(), "Woman"); }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = "ISPN014825: Query parameter 'param2' was not set") public void testMissingParamWithParameterMap() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("name").eq(param("param1")) .and().having("gender").eq(param("param2")) .build(); Map<String, Object> parameterMap = new HashMap<>(1); parameterMap.put("param1", "John"); q.setParameters(parameterMap); q.list(); }
@Override @Measure public void clearAllIndexedPathWithOriginalStore( ArtifactStore originalStore ) { StoreKey osk = originalStore.getKey(); long total = iterateRemove( () -> queryFactory.from( IndexedStorePath.class ) .maxResults( ITERATE_RESULT_SIZE ) .having( "packageType" ) .eq( osk.getPackageType() ) .and() .having( "originStoreType" ) .eq( osk.getType().name() ) .and() .having( "originStoreName" ) .eq( osk.getName() ) .toBuilder() .build() ); logger.trace( "Cleared all indices with origin: {}, size: {}", osk, total ); }
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()); }
@Override public long getSize( StoreKey storeKey ) { Query query = queryFactory.from( NfcConcreteResourceWrapper.class ) .select( Expression.count( "path" ) ) .having( "location" ) .eq( storeKey.toString() ) .toBuilder() .build(); List<Object> result = query.list(); Object[] count = (Object[]) result.get( 0 ); return (Long) count[0]; }
public void testNot8() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .not( qf.having("name").eq("John") .or(qf.having("surname").eq("Man"))) .build(); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals("Spider", list.get(0).getName()); assertEquals("Woman", list.get(0).getSurname()); }
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")); }
@Override @Measure public void clearAllIndexedPathInStoreWithOriginal( ArtifactStore store, ArtifactStore originalStore ) { StoreKey sk = store.getKey(); StoreKey osk = originalStore.getKey(); long total = iterateRemove( () -> queryFactory.from( IndexedStorePath.class ) .maxResults( ITERATE_RESULT_SIZE ) .having( "packageType" ) .eq( osk.getPackageType() ) .and() .having( "storeType" ) .eq( sk.getType().name() ) .and() .having( "storeName" ) .eq( sk.getName() ) .and() .having( "originStoreType" ) .eq( osk.getType().name() ) .and() .having( "originStoreName" ) .eq( osk.getName() ) .toBuilder() .build() ); logger.trace( "Cleared all indices with origin: {} and group: {}, size: {}", osk, sk, total ); }
public static void main(String[] args) { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.indexing().index(Index.ALL) .addProperty("default.directory_provider", "ram") .addProperty("lucene_version", "LUCENE_CURRENT"); // Construct a simple local cache manager with default configuration DefaultCacheManager cacheManager = new DefaultCacheManager(builder.build()); // Obtain the default cache Cache<String, Person> cache = cacheManager.getCache(); // Store some entries cache.put("person1", new Person("William", "Shakespeare")); cache.put("person2", new Person("William", "Wordsworth")); cache.put("person3", new Person("John", "Milton")); // Obtain a query factory for the cache QueryFactory queryFactory = Search.getQueryFactory(cache); // Construct a query Query query = queryFactory.from(Person.class).having("name").eq("William").toBuilder().build(); // Execute the query List<Person> matches = query.list(); // List the results matches.forEach(person -> System.out.printf("Match: %s", person)); // Stop the cache manager and release all resources cacheManager.stop(); }
public void testNot5() { QueryFactory qf = getQueryFactory(); // NOT should have higher priority than OR Query q = qf.from(getModelFactory().getUserImplClass()) .not().having("name").eq("Spider") .or().having("surname").eq("Man") .build(); List<User> list = q.list(); assertEquals(2, list.size()); for (User u : list) { assertNotEquals(u.getSurname(), "Woman"); } }
(context == null ? qb : context.and()).having(getPrimaryFieldName()).eq(this.startKey); }else{ if (this.startKey!=null && this.endKey!=null) context = (context == null ? qb : context.and()).having(getPrimaryFieldName()).between(this.startKey,this.endKey); else if (this.startKey!=null) context = (context == null ? qb : context.and()).having(getPrimaryFieldName()).between(this.startKey,null); else if (this.endKey!=null) (context == null ? qb : context.and()).having(getPrimaryFieldName()).between(null,this.endKey);
public void testOr3() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(User.Gender.MALE) .or().having("gender").eq(User.Gender.FEMALE) .build(); List<User> list = q.list(); assertEquals(3, list.size()); }
public void testWithParameterMap() { QueryFactory qf = getQueryFactory(); Query q = qf.from(getModelFactory().getUserImplClass()) .having("gender").eq(param("param1")) .and() .having("name").eq(param("param2")) .build(); Map<String, Object> parameterMap = new HashMap<>(2); parameterMap.put("param1", User.Gender.MALE); parameterMap.put("param2", "John"); q.setParameters(parameterMap); List<User> list = q.list(); assertEquals(1, list.size()); assertEquals(User.Gender.MALE, list.get(0).getGender()); assertEquals("John", list.get(0).getName()); parameterMap = new HashMap<>(2); parameterMap.put("param1", User.Gender.MALE); parameterMap.put("param2", "Spider"); q.setParameters(parameterMap); list = q.list(); assertEquals(1, list.size()); assertEquals(User.Gender.MALE, list.get(0).getGender()); assertEquals("Spider", list.get(0).getName()); }