Привет. Сама ассоциация работает правильно, но не сохраняется author_id у поста.
Много постов может быть оставлено одним автором:
@Entity
@Table(name = "post")
public class Post {
// ...
@ManyToOne
@JoinColumn(name="author_id")
private User author; }
Один автор может иметь много постов:
public class User implements UserDetails {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private long id;
// ...
@OneToMany(mappedBy="author", cascade = CascadeType.ALL)
private List<Post> posts; }
Тут я пытаюсь сохранять посты:
@PostMapping("/posts")
public String createPost(@Valid @RequestParam String body) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String name = authentication.getName();
Post post = new Post();
User currentUser = userService.findByName(name);
post.setAuthor(currentUser);
post.setBody(body);
postService.save(post);
return "redirect:/posts/";
}
Посты сохраняются и если я искусственно (через базу добавлю правильный author_id), то ассоциация будет работать, но сам этот author_id не сохраняется. Почему так? Смотрю гайды типа https://en.wikibooks.org/wiki/Java_Persistence/ManyToOne и https://hellokoding.com/jpa-one-to-many-relationship-mapping-example-with-spring-boot-maven-and-mysql/ , но не понимаю что не так.
Попробуйте добавить отношение и с другой стороны перед вызовом метода save()
currentUser.getPosts().add(post);
Виртуальный выделенный сервер (VDS) становится отличным выбором
есть заполненный числовой двумерный массив А[N][W] (по условию верхняя строка нули, а справа внизу максимум) и вектор w[N], и требуется следуя...
В приложения программно (Java коде) вывожу несколько LinearLayoutНе как не могу поставить программно этому LinearLayout фон имеющего drawable
Не могу запустить javaexe из командной строки (cmd)