【发布时间】:2019-08-28 16:16:45
【问题描述】:
我看过一些关于 DynamoDB 多对多关系的文章。
据我了解; 应该有一个表,我需要使用复合主键。
对于书籍项目; hashKey(partionKey) 应该是 book id;并且 RangeKey(sortKey) 应该是作者 ID; 对于作者项目; hashKey(partionKey) 应该是作者 id;并且 RangeKey(sortKey) 应该是 book id;
我已经创建了这些模型;
@Data
@DynamoDBTable(tableName = "author_book_table")
public class Book {
@Id
private BookId id;
private String name;
private Integer pages;
}
@Data
@DynamoDBTable(tableName = "author_book_table")
public class Author {
@Id
private AuthorId id;
@DynamoDBAttribute
private String name;
}
Id 模型如下所示;
@Data
public class BookId {
@DynamoDBHashKey
private String bookId;
@DynamoDBRangeKey
private String authorId;
}
@Data
public class AuthorId {
@DynamoDBHashKey
private String authorId;
@DynamoDBRangeKey
private String bookId;
}
但我无法想象如何使用它,如何查询作者的书籍或作者的书籍。 正确的做法是什么?
我在 java 上找不到任何关系示例。 我也使用 Spring data dynamoDB moodule。
【问题讨论】:
-
我不确定我是否理解您的要求。你能给出一个示例数据库(只有几个条目),一个示例查询(单词很好)和预期的输出吗?
-
@MyStackRunnethOver 我有 Book 和 Author 实体,他们需要对多对多关系进行建模。我还需要按作者获取书籍并按书籍获取作者。我该怎么做。
标签: java spring-boot amazon-dynamodb