Вот код для 2 сущностей (он генерирует три таблицы в базе данных). Book
сущность:
@Entity
public class Book {
@Id
private long id;
private String name;
@ManyToMany
private List<Author> authors;
}
Author
сущность:
@Entity
public class Author {
@Id
private long id;
@Column(unique=true)
private String name;
}
Я пытаюсь найти книги по списку авторов. Вот запрос sql:
select book.id, ARRAY_AGG(author.name)
from book
join book_authors ba on book.id=ba.book_id
join author on ba.authors_id=author.id
group by book.id
having ARRAY_AGG(distinct author.name order by author.name)=ARRAY['a1', 'a2']::varchar[]
['a1', 'a2']
- список авторов книг, его необходимо передать в качестве параметра. Идея состоит в том, чтобы объединить авторов и затем сравнить их со списком переданных параметров.
Как переписать этот SQL -запрос в запрос JPQL или CriteriaBuilder?