Ahoj, predpokladam, ze ten ManyToMany vztah mas v objekte Article.
Najjednoduchsi sposob je v tabulke ArticleCategory definovat:
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "categories")
private Set<Article> articles = new HashSet<Article>();
Potom staci, ked na nejakej kategorii, zavolas tento getter a Hibernate
vygeneruje dotaz, ktory Ti vrati vsetky clanky v kategorii. Je to za
predpokladu, ze Ti neprekaza tento "bidirectional" vztah.
Ak to chces napisat v HQL, tak by snad mohlo zafungovat toto:
.createQuery("from Article as a where :category in elements(a.categories)");
.setParameter("category", categoryObject);
Roman
2009/11/25 Ivan Polak <[email protected]>
> Ahojte,
> mam takyto maly problemik s hibernate.
>
> ma jednu tabulku clankov (article), ktora ma id. druhu tabulku
> kategorii clankov (article_category), ma tiez id. a mam v triede
> Article nasledovny zapis, teda pouzivam vazobnu-join tabulku
> (category_article):
>
> join tabulka category_article ma 2 stlpce - id do article a id do
> article_category. jeden clanok moze byt vo viacerych kategoriach.
>
> .....
> @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
> @JoinTable(name = "CATEGORY_article", joinColumns =
> @JoinColumn(name = "ARTICLE")
> , inverseJoinColumns = @JoinColumn(name = "CATEGORY")
> )
> @ForeignKey(name = "FK_CATEGORY_article_ARTICLE", inverseName =
> "FK_CATEGORY_article_CATEGORY")
> @NotNull
> private Set<ArticleCategory> categories = new
> HashSet<ArticleCategory>();
>
> potrebujem napisat cez HQL dotaz, ktory mi vrati vsetky clanky v
> nejakej kategori.
>
> dakujem
>
> Ivan
>