/** * Creates a {@link SpringDataMongodbQuery}. * * @return */ private SpringDataMongodbQuery<T> createQuery() { return new SpringDataMongodbQuery<>(mongoOperations, typeInformation().getJavaType()); }
@Override public <S extends T> Optional<S> findOne(Example<S> example) { RedisOperationChain operationChain = createQuery(example); KeyValueQuery<RedisOperationChain> query = new KeyValueQuery<>(operationChain); Iterator<T> iterator = keyValueTemplate.find(query.limit(2), entityInformation.getJavaType()).iterator(); Optional result = Optional.empty(); if (iterator.hasNext()) { result = Optional.of((S) iterator.next()); if (iterator.hasNext()) { throw new IncorrectResultSizeDataAccessException(1); } } return result; }
@Override public <S extends T> Iterable<S> findAll(Example<S> example) { RedisOperationChain operationChain = createQuery(example); return (Iterable<S>) keyValueTemplate.find(new KeyValueQuery<>(operationChain), entityInformation.getJavaType()); }
@Override public <S extends T> long count(Example<S> example) { RedisOperationChain operationChain = createQuery(example); return keyValueTemplate.count(new KeyValueQuery<>(operationChain), entityInformation.getJavaType()); }
@Override public <S extends T> Page<S> findAll(Example<S> example, Pageable pageable) { Assert.notNull(pageable, "Pageable must not be null!"); RedisOperationChain operationChain = createQuery(example); KeyValueQuery<RedisOperationChain> query = new KeyValueQuery<>(operationChain); Iterable<T> result = keyValueTemplate.find( query.orderBy(pageable.getSort()).skip(pageable.getOffset()).limit(pageable.getPageSize()), entityInformation.getJavaType()); long count = operationChain.isEmpty() ? keyValueTemplate.count(entityInformation.getJavaType()) : keyValueTemplate.count(query, entityInformation.getJavaType()); List<S> list = new ArrayList<>(); for (T t : result) { list.add((S) t); } return new PageImpl<>(list, pageable, count); }
/** * Creates a {@link ReactiveSpringDataMongodbQuery}. * * @return */ private ReactiveSpringDataMongodbQuery<T> createQuery() { Class<T> javaType = typeInformation().getJavaType(); return new ReactiveSpringDataMongodbQuery<>(mongodbSerializer(), mongoOperations, javaType, mongoOperations.getCollectionName(javaType)); }
/** * Creates a {@link SpringDataMongodbQuery}. * * @return */ private SpringDataMongodbQuery<T> createQuery() { return new SpringDataMongodbQuery<>(mongoOperations, entityInformation.getJavaType()); }
@Override public boolean exists(ID id) { return operations.exists(id, entityInformation.getJavaType()); } /* (non-Javadoc)
@Override public void delete(ID id) { Assert.notNull(id, "The given id must not be null!"); operations.delete(id, entityInformation.getJavaType()); }
private RepositoryFactoryInformation<Object, Serializable> getRepoInfoFor(Class<?> domainClass) { Assert.notNull(domainClass); for (RepositoryFactoryInformation<Object, Serializable> information : repositories.keySet()) { if (domainClass.equals(information.getEntityInformation().getJavaType())) { return information; } } return null; }
@Override public void deleteAll() { operations.delete(entityInformation.getJavaType()); } }
@Override public void deleteAll() { operations.delete(entityInformation.getJavaType()); } }
@Override public <S extends T> Iterable<S> findAll(Example<S> example) { RedisOperationChain operationChain = createQuery(example); return (Iterable<S>) keyValueTemplate.find(new KeyValueQuery<>(operationChain), entityInformation.getJavaType()); }
@Override public <S extends T> long count(Example<S> example) { RedisOperationChain operationChain = createQuery(example); return keyValueTemplate.count(new KeyValueQuery<>(operationChain), entityInformation.getJavaType()); }
@SuppressWarnings("unchecked") public Revisions<N, T> findRevisions(ID id) { Class<T> type = entityInformation.getJavaType(); AuditReader reader = AuditReaderFactory.get(entityManager); List<? extends Number> revisionNumbers = getRevisions(id, type, reader); return revisionNumbers.isEmpty() ? Revisions.none() : getEntitiesForRevisions((List<N>) revisionNumbers, id, reader); }
@Override public Page<T> findAll(Pageable pageable) { Assert.notNull(pageable, "Pageable must not be null!"); if (pageable.isUnpaged()) { List<T> result = findAll(); return new PageImpl<>(result, Pageable.unpaged(), result.size()); } Iterable<T> content = operations.findInRange(pageable.getOffset(), pageable.getPageSize(), pageable.getSort(), entityInformation.getJavaType()); return new PageImpl<>(IterableConverter.toList(content), pageable, this.operations.count(entityInformation.getJavaType())); }
@Override protected Object getTargetRepository(RepositoryInformation metadata) { EntityInformation<?, Serializable> entityInformation = getEntityInformation(metadata.getDomainType()); Class<?> repositoryInterface = metadata.getRepositoryInterface(); Class<?> javaType = entityInformation.getJavaType(); String cluster = getCustomCluster(metadata); if (cluster != null) { return new SimpleOrientRepository(operations, javaType, cluster, repositoryInterface); } else { return new SimpleOrientRepository(operations, javaType, repositoryInterface); } }
@Override protected Object getTargetRepository(RepositoryInformation metadata) { EntityInformation<?, Serializable> entityInformation = getEntityInformation(metadata.getDomainType()); Class<?> repositoryInterface = metadata.getRepositoryInterface(); Class<?> javaType = entityInformation.getJavaType(); String cluster = getCustomCluster(metadata); if (cluster != null) { return new SimpleOrientRepository(operations, javaType, cluster, repositoryInterface); } else { return new SimpleOrientRepository(operations, javaType, repositoryInterface); } }
@Override public Iterable<T> findAll(Sort sort) { QueryString query = QueryString.of("SELECT * FROM /RegionPlaceholder") .fromRegion(this.entityInformation.getJavaType(), this.template.getRegion()) .orderBy(sort); SelectResults<T> selectResults = this.template.find(query.toString()); return selectResults.asList(); }
@Override public Iterable<T> findAll(Sort sort) { QueryString query = QueryString.of("SELECT * FROM /RegionPlaceholder") .fromRegion(this.entityInformation.getJavaType(), this.template.getRegion()) .orderBy(sort); SelectResults<T> selectResults = this.template.find(query.toString()); return selectResults.asList(); }