0
私はdynamodbを試したかったdynamodb java many to one
私は1つのオブジェクトを保存することができました。 私は多対1の関連付けを作成しようとしました。
複数のタスクを1人のユーザーに割り当てることができます。
@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;
}
}
と今私はcorespondingタスク
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の
THANKSでそれを正しい方法を行うには!
...どのように私は更新しないIDとタスククラス – splitiii
のための空のコンストラクタのためのセッターを追加する必要が今仕事ですか?ユーザーオブジェクト全体を再度保存する必要がありますか?特定のタスクを個人的に更新することはできますか? – splitiii
マッパーの使用特定のタスクを更新するのは難しいと思います。低レベルの更新アイテムapiを使用する必要があり、更新が必要なリスト内のタスクのインデックスを知っている必要があります。タスクリストのインデックスがなければ、更新項目apiはリスト全体を置き換えます。 – notionquest