bigzed Creative Commons License 2012.06.13 0 0 5685

Hali!

 

JPQL

 

Van ket tablam pix(kepek) es picture_categories(kep kategoriak), amik sok-sok kapcsolatban vannak egymassal, egy 3. (pix_categories) kapcsolotabla segitsegevel.

Igy kerdezem le azokat a kepeket (pix) amik nincsenek kategoriakhoz(picture_categories) rendelve:

 

select pix.id as id12_, pix.filename as filename12_ from pix pix where pix.id not in (select pix_categories.pic_id from pix_categories)

 

Ennek a lekerdezesnek kellen megalkotnom a JPQL-es valtozatat. (ehhez kernem egy nalam hozzaertobb segitseget :) )

 

Igy nez ki a Pix entitas(ami a kepeket tarolja) kapcsolodo resze:


@JoinTable(name = "pix_categories",
            joinColumns=@JoinColumn(name = "pic_id"),
            inverseJoinColumns=@JoinColumn(name = "cat_id")
    )
    private Collection<PictureCategories> pictureCategoriesCollection;

 

Igy nez ki a PictureCategories(a kepek kategoriait tarolja) kapcsolodo resze:

@ManyToMany(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
    @JoinTable(name = "pix_categories",
    joinColumns =
    @JoinColumn(name = "cat_id"),
    inverseJoinColumns =
    @JoinColumn(name = "pic_id"))
    private Collection<Pix> pixCollection;