我想尝试使用dynamodb
我能够保存一个Object。 现在我想尝试创建一个多对一的协会。
许多任务可以附加到单个用户。
@DynamoDBTable(tableName = "User")
public class User {
private String id;
List<Task> tasks = new ArrayList<Task>();
@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
public String getId() {
return id;
}
@DynamoDBAttribute
public List<Task> getTasks() {
return this.tasks;
}
public void setTasks(List<Task> taskMap) {
this.tasks = taskMap;
}
public void addTask(Task task){
this.tasks.add(task);
}
}
@DynamoDBTable(tableName = "Task")
public class Task {
private String id;
private String name;
@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
public String getId() {
return id;
}
public Task(String name) {
this.name = name;
}
@DynamoDBAttribute
public String getName(){
return this.name;
}
public void setname(String name){
this.name = name;
}
}
现在我正在尝试使用相应的任务保存用户
Task task1 = new Task("test");
Task task2 = new Task("test2");
User user = new User();
user.addTask(task1);
user.addTask(task2);
userRepository.save(user);
我知道它不会像这样工作,但也许有人可以给我一个如何做的例子。
在关系数据库世界中,表格看起来像这样
User
id|.....
Task
id|name
User_Tasks
user_id|task_id
但是如何用dynamodb以正确的方式做到这一点
谢谢!
答案 0 :(得分:1)
我希望您在单个DynamoDB表(即User)中保存用户和任务。请使用@DynamoDBDocument而不是@DynamoDBTable注释任务类。
@DynamoDBDocument
public class Task {
}