Zdravim,
select p from Concept c left join c.parents p where c = :id

Petr Kolesa napsal(a):
> Lukas Barton napsal(a):
>> Ahoj,
>>
>>   toto udelat nejde, viz manual Hibernatu kapitola 6.3.2.
>> (http://www.hibernate.org/hib_docs/reference/en/html/collections.html)
>>
>> You may specify a bidirectional many-to-many association simply by
>> mapping two many-to-many associations to the same database table and
>> declaring one end as /inverse/ (which one is your choice, but it can
>> not be an indexed collection).
>>
>> Neni proste jak ulozit a manageovat oba dva indexy.
>>
>>    Lukas
>>                            
> Nakonec jsem v tom zbytecne hledal slozitosti:
> 
> @Entity
> class Concept {
>    @ManyToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE},
> mappedBy="children")
>     private List<Concept> parents;       
> @ManyToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE})
>     private List<Concept> children;  
> }
> 
> Dela presne to, co jsem potreboval.
> 
> Problem je v tom, ze mi porad nejak nejde zkrotit Hibernate, i presto ze
> mi nedela problemy uvazovat v jazyce objektu ani v jazyce relacni databaze.
> 
> Napr: Jak by mel vypadat HQL dotaz, ktery by mi vratil rodice uzlu, kdyz
> mych mel takovyhle mapovani:
> 
> @Entity
> class Concept {
>    @Transient
>     private List<Concept> parents;        @ManyToMany(cascade={...})
>     private List<Concept> children;  
> }
> 
> Tj. neukladaj se mi rodice.
> 
> Tabulky vypadaji
> 
> table CONCEPT
> ID : integer
> ...
> 
> table CONCEPT_CONCEPT
> PARENT_ID : integer
> CHILD_ID : integer
> 
> V SQL by dotaz vypadal
> 
> select * from
>    Concept c left join  concept_concept cc
>    on cc.parent_id = c.id
> where
>    cc.child_id =   :hledaneID;
> 
> Jak totez zformulovat v HQL?
> 
> diky
> 
>    kolisko

Odpovedet emailem