[JPA]zapytanie na 3 złączonych tabelach

Odpowiedz Nowy wątek
2011-10-11 21:47
0

Witam

mam 3 tabele, nazwijmy A, B, C, które są w takiej relacji (pomijam nieistotne dane)

class A {
    @OneToOne
    B b;
}
class B {
    @OneToMany
    List<C> c;
}
class C {
    String cos;
    @ManyToOne
    B b;
}

Teraz jeśli chcę dostać wiersze B na podstawie danych w C to tworzę NamedQuery:

SELECT b FROM B b JOIN b.c AS cc WHERE cc.cos = ?1

Pytanie co muszę zrobić jeśli chcę dostać wiersze A na postawie tych danych? Próbowałem JOIN A z B, a potem B z C, ale wyskoczył błąd składni (unexpected JOIN)

SELECT a FROM A a JOIN a.b AS bb JOIN bb.c AS cc WHERE cc.cos = ?1

Pozostało 580 znaków

2011-10-12 03:43
ws
0
twono napisał(a)

Pytanie co muszę zrobić jeśli chcę dostać wiersze A na postawie tych danych? Próbowałem JOIN A z B, a potem B z C, ale wyskoczył błąd składni (unexpected JOIN)

SELECT a FROM A a JOIN a.b AS bb JOIN bb.c AS cc WHERE cc.cos = ?1

JPA powinien lyknac takiego NamedQuery. Do jakiego DBMS sie laczysz?

Pozostało 580 znaków

2011-10-12 10:59
0

PostgreSQL, Toplink, Glassfish 2.

EDIT: już nieaktualne. Przy dzieleniu query na wiele stringów zapomniałem dodać spacje.

edytowany 1x, ostatnio: twono, 2011-10-12 16:40

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0