Выполнение SQL / JPQL-запроса для выбора всех тем, соответствующих обоим ключевым словам - PullRequest
0 голосов
/ 27 сентября 2018

Задача: Я хочу создать запрос, который выбирает Темы , которые соответствуют ключевым словам ID´s "Java" и "sql", тема с ID = 1 соответствует обоим ключевым словам "Java" и "Sql .

Я реализовал две простые сущности Тема и ключевое слово . Они имеют двунаправленное отношение ManyToMany:

@Entity
@Table(name = "Topic")
public class Topic implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "topicID")
    private Long id;
    @Column(name = "topicTitle")
    private String title = "";
    @ManyToMany
    @JoinTable(name = "Join_Topic_Keyword",
            joinColumns = @JoinColumn(name = "Topic_ID"),
            inverseJoinColumns = @JoinColumn(name = "Keyword_ID"))
    private Set<Keyword> keywords;
}
@Entity
@Table(name = "Keyword")
public class Keyword implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "keywordID")
    private String id;
    @ManyToMany(mappedBy = "keywords")
    private Set<Topic> topics;
}

Вот таблица структуры.

И это результат Join_Topic_Keyword

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...