Здравствуйте!
Есть 2 класса entity:
@Entity @Data
@Table(name = "tasks")
public class Task {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long taskId;
@ManyToMany(fetch = FetchType.EAGER, mappedBy = "taskList")
private List<User> userList;
}
@Entity @Data
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long user_id;
@ManyToMany
@JoinTable(name="task_authors",
joinColumns = @JoinColumn(name="user_id", referencedColumnName="user_id"),
inverseJoinColumns = @JoinColumn(name="task_id", referencedColumnName="taskId")
)
private List<Task> taskList;
}
И контроллер:
@PostMapping("/add")
public String addTask(
@AuthenticationPrincipal UserDetails currentUser,
@RequestParam("WebsiteId") Website website,
@ModelAttribute Task task,
@RequestParam("taskAuthors") List<User> taskAuthors
) {
User owner = (User) userService.findUserByEmail(currentUser.getUsername());
task.setOwnerId(owner.getUser_id());
task.setUserList(taskAuthors);
taskService.addTask(task);
return "redirect:/tasks";
}
Таблица должна получиться так:
+---------+---------+
| user_id | task_id |
+---------+---------+
| 1 | 5 |
| 2 | 5 |
| 3 | 5 |
+---------+---------+
Скриншот из POST запроса:
Почему
@RequestParam("taskAuthors") List<User> taskAuthors
и соответственно:
task.setUserList(taskAuthors);
не дает нужного результата?