[JPA]zapytanie na 3 złączonych tabelach

[JPA]zapytanie na 3 złączonych tabelach
TW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Witam

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

Kopiuj
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:

Kopiuj
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)

Kopiuj
SELECT a FROM A a JOIN a.b AS bb JOIN bb.c AS cc WHERE cc.cos = ?1
  • Rejestracja: dni
  • Ostatnio: dni
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)

Kopiuj
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?

TW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

PostgreSQL, Toplink, Glassfish 2.

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.