У меня есть таблицы Tags, Blog и BlogTags. При использовании "многие ко многим" я бы хотел, чтобы в блоге было много тегов (в виде объектов с идентификатором, именем).
Во внешнем интерфейсе, когда я добавляю теги, они создаются только с именем и идентификатором null поэтому, когда я сохраняю блог, новый тег создается каждый раз, когда он автоматически увеличивает тег, я бы хотел, чтобы тег был объединен с блогом, если указанный тег уже существует. Идея состоит в том, чтобы я мог щелкнуть любой тег предоставления и получить все связанные с ним блоги.
Итак, объект, отправленный на бэкэнд, будет:
{id: null,
name: 'name'
,.....
tags: [{id: null, name: 'name},{id: null, name: 'name}]}
Любая помощь приветствуется.
@Data
@Entity
public class Tag {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
@ManyToMany(mappedBy = "tags", fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
private List<BlogPost> blogPosts;
}
public class BlogPost {
//other data
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST})
@JoinTable(
name = "blog_post_tag",
joinColumns = {@JoinColumn(name = "blog_post_id")},
inverseJoinColumns = {@JoinColumn(name = "tag_id")})
private List<Tag> tags;
}