Я хотел бы помочь понять следующий запрос JPQL.Контекст представляет собой простое приложение для блога, в котором сообщения и теги имеют отношение «многие ко многим».Мы пытаемся найти сообщения, помеченные всеми тегами, передаваемыми методу:
public static List<Post> findTaggedWith(String... tags) {
return Post.find(
"select distinct p from Post p join p.tags as t where t.name in (:tags) group by p.id, p.author, p.title, p.content,p.postedAt having count(t.id) = :size"
).bind("tags", tags).bind("size", tags.length).fetch();
}
По сути, я бы хотел, чтобы кто-нибудь рассказал мне, что происходит в этом запросе.В частности, меня смущает использование GROUP BY с несколькими полями.Я думаю, что если мы группируем по идентификатору, который является уникальным, то группировка по чему-либо еще будет излишней.Чего мне не хватает?