Есть 3 объекта: 1) Вопрос, 2) Тег и таблица соединения между ними - Question_Has_Tag
Те же объекты в java, за исключением таблицы соединения. Вместо него:
public class Question {
//
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "question_has_tag",
joinColumns = @JoinColumn(name = "question_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id"))
private List<Tag> tags;
public class Tag {
//
@ManyToMany(mappedBy = "tags", fetch = FetchType.LAZY)
@ContainedIn
private List<Question> questions;
Запрос для преобразования:
select * from question as q
join question_has_tag as qht on q.id = qht.question_id
where qht.question_id in (select question_id from question_has_tag where tag_id = 1);
Я путаю таблицу соединения и коллекции. При преобразовании одного в другой
Если вам понадобится больше кода или информации, сообщите мне