Jak zapytać o związek M: N z JPA2?
Mam obiekt (BlogPost), który zawiera kolekcję elementów M: N (Tagi).
Jak zapytać o obiekt (BlogPost), w którym przynajmniej jeden jego znacznik pasuje do elementu w zestawie znaczników (zdefiniowanych przez użytkownika) z JPA2 (Hibernate).
findBlogPostWithAtLeastOneMatchingTag(Collection<Tag> tags){ ???? }
Moim głównym problemem jest to, że muszę porównać dwie kolekcje tagów: - zbiór tagów BlogPost. - Kolekcja, której szukam
próbowałemSelect p from Post p where p.tags in(:tags)
ale to nie działa, ponieważ moje wpisy mają więcej niż jeden tag.
Więc co mogę zrobić zamiast tego?
Obiekt My BlogPost wygląda tak. Ma kilka tagów.
@Entity
public class BlogPost{
/** The tags. */
@ManyToMany()
@NotNull
private Set<Tag> tags;
@NotBlank
private String content;
...
}
Rozwiązaniem nie może być JPQL, JPA-Criteria (nie Hibernate-Criteria) też byłoby w porządku.