Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,37 @@
package com.azure.cosmos.springexamples.quickstart.sync;

import com.azure.cosmos.models.PartitionKey;
import com.azure.cosmos.models.SqlQuerySpec;
import com.azure.cosmos.springexamples.common.User;
import com.azure.spring.data.cosmos.core.CosmosTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import reactor.core.publisher.Flux;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@SpringBootApplication
public class SampleApplication implements CommandLineRunner {

private final Logger logger = LoggerFactory.getLogger(SampleApplication.class);

@Autowired
private UserRepository userRepository;

@Autowired
private CosmosTemplate cosmosTemplate;

private ReactiveUserRepository reactiveUserRepository;

//Spring dependency injection using constructor
public SampleApplication(UserRepository userRepository, CosmosTemplate cosmosTemplate, ReactiveUserRepository reactiveUserRepository){
this.userRepository = userRepository;
this.cosmosTemplate = cosmosTemplate;
this.reactiveUserRepository = reactiveUserRepository;
}

public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
Expand Down Expand Up @@ -92,7 +99,7 @@ public void run(String... var1) {
while (allUsersIterator.hasNext()) {
logger.info("user is : {}", allUsersIterator.next());
}

logger.info("Using reactive repository");
Flux<User> users = reactiveUserRepository.findByFirstName("testFirstName");
users.map(u -> {
Expand All @@ -101,5 +108,15 @@ public void run(String... var1) {
}).subscribe();

// </Query>

// <CustomQuery>
//use cosmos template if you need to execute a non Spring parameterized custom query using the raw Cosmos DB SQL API query syntax
SqlQuerySpec querySpec = new SqlQuerySpec("SELECT * FROM c where c.lastName = 'testLastName2'");
Iterable<User> user = cosmosTemplate.runQuery(querySpec, User.class, User.class);
for (User userResults: user){
logger.info("custom query result id: "+userResults.getId());
logger.info("custom query result last name: "+userResults.getLastName());
}
// </CustomQuery>
}
}