Сделать запрос в базе данных, который вернет все записи, имеющие хотя бы один тег из списка
У меня есть сущность Post в которой одно из полей - список тегов (как теги у поста в социальной сети):
@ElementCollection
@CollectionTable(
name = "posts_tags",
joinColumns = @JoinColumn(name = "post_id", referencedColumnName = "id"))
@Column(name = "tag", nullable = false)
private List<String> tags = new ArrayList<>();
При запуске Spring Boot проекта Hibernate выводит следующие логи:
Hibernate: create table posts (id bigserial not null, text varchar(255) not null, title
varchar(255) not null, user_id int8 not null, primary key (id))
Hibernate: create table posts_tags (post_id int8 not null, tag varchar(255) not null)
Hibernate: alter table posts_tags add constraint FKcreclgob71ibo58gsm6l5wp6 foreign key
(post_id) references posts
Сущности Тег в проекте нет, получается создается связанная таблица с тегами по отношению "один ко многим".
Пользователь делает запрос с передачей списка желаемых тегов, нужно вернуть все посты, в которых хотя бы один тег будет совпадать с тегами из переданного списка. Реализовать запрос к базе данных нужно в репозитории расширяющем JpaRepository. Используемая БД - PosgreSQL. Как пишется подобный запрос? Может быть есть имя метода в JpaRepository<> по которому Spring сгенерирует такой запрос?