Trosku oneskorena reakcia, ale naslo by sa este jedno riesenie, ktore tu myslim nebolo spomenute. Vysledok sa da ziskat na 1 dotaz priblizne takto:

SELECT a.id
FROM osoba as a
JOIN je_vlastnik as ab ON ab.id_osoby = a.id
JOIN typ_vozidla as b ON b.id = ab.id_typu_vozidla
WHERE (b.popis = 'auto' OR b.popis = 'motorka' OR ...)
GROUP BY a.id
HAVING count(b.id) = pocet_splnenych_podmienok

// pocet_splnenych_podmienok = v nasom pripade pocet vsetkych podmienok z klauzuly WHERE

Dufam, ze som sa takto z hlavy niekde nesekol. Bohuzial vdaka 'group by' sa v HQL tusim neda spravit projekcia priamo na cely objekt Osoba, ale treba vymenovat atributy (v priklade a.id).

On 11. 8. 2010 16:22, Ondra Medek wrote:
tak ten seznam dej do IN (), pokud je maly, jestlize je velky, pak pro
kazdy dopravni prostredek musis udelat jeden select a vysledek pak
zkombinovat programove (List).

2010/8/11 Ivan Polak<[email protected]>:
dakujem za odpovede, toto by sa dalo pouzit, ale ja nemam stale iba 2
prvky, teda nie je stale zistovanie "auto", "bicykel", select by mal
byt vseobecny, niekde potrebujem zistit "auto", "motorka", "skuter".

dakujem

Ivan

2010/8/11 Stanislav Hybášek - MoroSystems<[email protected]>:
  Co něco takového? Toto by myslím mělo být funkční, nevím nakolik optimální
řešení problému..

SELECT a FROM A a WHERE :b1 MEMBER OF a.bs AND :b2 MEMBER OF a.bs

query.setParameter("b1", auto);
query.setParameter("b2", bycikl);

Ahoj,
Standa


Dne 11.8.2010 07:52, Ondřej Fafejta napsal(a):
Zdravím,
nestačilo by něco takového?
(píšu to z hlavy, určitě tam bude nějaká chyba)

Class A {
...
@ManyToMany
List<B>    bs

JPA QL:

SELECT DISTINCT a FROM A a JOIN a.bs b WHERE b.id IN (1,2)

Fafi

2010/8/10 Ivan Polak<[email protected]>:
Ahojte,

skusim to napisat zrozumitelnejsie:

mam tabulku A, stlpce:

id
name

mam tabulku B, stlpce:
id
name

a potom mam tabulku AB (vazobna tabulka medzi A a B) , stlpce:
fk_a_id cudzi kluc do A
fk_b_id cudzi kluc do B.

priklad:

tabulka A:
1          Ivan
2          Peter
3          Jozo

tabulka B:
1          auto
2          bicykel
3          motorka
4          skuter

tabulka AB:
1        1
1         2
3         4
2         1
2         2
4         1

potrebujem cez hibernate napisat taky dotaz, ktory mi vyberie z
tabulky A len takych ludi, ktori maju auto a bicykel, teda ktory maju
presne taketo zaznamy:

x          1
x          2

v nasom pripade by to boli zaznamy z A tabulky: Ivan a Peter (id 1 a 2).

dakujem

Ivan






__________ Informacia od ESET Smart Security, verzia databazy 5388 (20100823) 
__________

Tuto spravu preveril ESET Smart Security.

http://www.eset.sk


Odpovedet emailem