Info |
---|
CAST supports DynamoDB via its NoSQL for Java extension. Details about the support provided for Java with Spring Data source code is explained below. |
Supported Client Libraries
Supported Operations
Operations | Method Supported |
---|
Insert |
Expand |
---|
| - org.springframework.data.repository.CrudRepository.save
- org.springframework.data.repository.CrudRepository.saveAll
|
Expand |
---|
| - org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.save
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.saveAll
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.save
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.saveAll
|
|
Select |
Expand |
---|
| - org.springframework.data.repository.CrudRepository.existsById
- org.springframework.data.repository.CrudRepository.findAll
- org.springframework.data.repository.CrudRepository.findById
- org.springframework.data.repository.PagingAndSortingRepository.findAll
|
Expand |
---|
| - org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.existsById
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.findAll
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.findById
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.existsById
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.findById
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.findAll
|
|
Delete |
Expand |
---|
| - org.springframework.data.repository.CrudRepository.delete
- org.springframework.data.repository.CrudRepository.deleteById
- org.springframework.data.repository.CrudRepository.deleteAllById
- org.springframework.data.repository.CrudRepository.deleteAll
|
Expand |
---|
| - org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.delete
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.deleteById
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.deleteAllById
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBCrudRepository.deleteAll
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.delete
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.deleteById
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.deleteAllById
- org.socialsignin.spring.data.dynamodb.repository.DynamoDBPagingAndSortingRepository.deleteAll
|
|
Objects
Icon | Description |
---|
Image Modified
| Java_DynamoDB_Client |
Image Modified
| Java_DynamoDB_Table |
Image Modified
| Java_Unknown_DynamoDB_Client |
Image Modified
| Java_Unknown_DynamoDB_Table |
Links
Links are created for transaction and function point needs:
Link type | Source and destination of link | Methods Supported |
---|
parentLink | Between DynamoDB client object and DynamoDB table |
|
useInsertLink | Between the caller Java Method objects and DynamoDB client | |
useSelectLink | - existsById
- findById
- findAll
|
useDeleteLink | - delete
- deleteById
- deleteAll
- deleteAllById
|
What results can you expect?
Once the analysis/snapshot generation is completed, you can view the results in the normal manner (for example via CAST Enlighten). Some examples are shown below.
DynamoDB Client with Java Configuration
Expand |
---|
|
Code Block |
---|
| @Configuration
@EnableDynamoDBRepositories(basePackages = "com.javasampleapproach.dynamodb.repo")
public class DynamoDBConfig {
@Value("${amazon.dynamodb.endpoint}")
private String dBEndpoint;
@Value("${amazon.aws.accesskey}")
private String accessKey;
@Value("${amazon.aws.secretkey}")
private String secretKey;
@Bean
public AmazonDynamoDB amazonDynamoDB() {
AmazonDynamoDB dynamoDB = new AmazonDynamoDBClient(amazonAWSCredentials());
if (!StringUtils.isNullOrEmpty(dBEndpoint)) {
dynamoDB.setEndpoint(dBEndpoint);
}
return dynamoDB;
}
@Bean
public AWSCredentials amazonAWSCredentials() {
return new BasicAWSCredentials(accessKey, secretKey);
}
}
|
Image Modified
|
Select Operation
Expand |
---|
|
Code Block |
---|
| public String findAll() {
String result = "";
Iterable<Customer> customers = repository.findAll();
for (Customer cust : customers) {
result += cust.toString() + "<br>";
}
return result;
} |
Image Modified
|
Insert Operation
Expand |
---|
|
Code Block |
---|
| public String save() {
// save a single Customer
repository.save(new Customer("JSA-1", "Jack", "Smith"));
} |
Image Removed Image Added
|
Delete Operation
Expand |
---|
|
Code Block |
---|
| public String delete() {
repository.delete(new Customer("JSA-1", "Jack", "Smith"));
repository.deleteAll();
return "Done";
} |
Image Removed
|
Evolution
- Better resolution for tables
Query Methods are supported for Spring Data.
Image Added
|
Limitations
- Client is created as unknown, if the name is not retrieved from the properties file or if the name could is not be resolved.
Future Scope
- To Support Query Methods with @Query annotation