/** @see <a href="https://jira.spring.io/browse/DATACASS-7">DATACASS-7</a> */ @Test public void considersMethodAsCollectionQuery() throws Exception { CassandraQueryMethod queryMethod = queryMethod(SampleRepository.class, "method"); assertThat(queryMethod.isCollectionQuery()).isTrue(); }
/** @see <a href="https://jira.spring.io/browse/DATACASS-7">DATACASS-7</a> */ @Test public void detectsCollectionFromRepoTypeIfReturnTypeNotAssignable() throws Exception { CassandraQueryMethod queryMethod = queryMethod(SampleRepository.class, "method"); CassandraEntityMetadata<?> metadata = queryMethod.getEntityInformation(); assertThat(metadata.getJavaType()).isAssignableFrom(Person.class); assertThat(metadata.getTableName().toCql()).isEqualTo("person"); }
private CassandraQueryExecution getExecutionToWrap( CassandraParameterAccessor accessor, Converter<Object, Object> resultProcessing) { if (queryMethod.isCollectionQuery()) { return new CollectionExecution(template); } else if (queryMethod.isResultSetQuery()) { return new ResultSetQuery(template); } else if (queryMethod.isStreamQuery()) { return new StreamExecution(template, resultProcessing); } else { return new SingleEntityExecution(template); } }
/* (non-Javadoc) * @see org.springframework.data.repository.query.RepositoryQuery#execute(java.lang.Object[]) */ @Override public Object execute(Object[] parameters) { CassandraParameterAccessor parameterAccessor = new ConvertingParameterAccessor( template.getConverter(), new CassandraParametersParameterAccessor(queryMethod, parameters)); ResultProcessor resultProcessor = queryMethod.getResultProcessor().withDynamicProjection(parameterAccessor); String query = createQuery(parameterAccessor); CassandraQueryExecution queryExecution = getExecution( query, parameterAccessor, new ResultProcessingConverter( resultProcessor, template.getConverter().getMappingContext(), instantiators)); CassandraReturnedType returnedType = new CassandraReturnedType( resultProcessor.getReturnedType(), template.getConverter().getCustomConversions()); Class<?> resultType = (returnedType.isProjecting() ? returnedType.getDomainType() : returnedType.getReturnedType()); return queryExecution.execute(query, resultType); }