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