Witam
Mam dwie tabele
Tabela A id_a (PK)
Tabela B id_b (PK) , id_a (FK)
A (1 : N) B
class A
{
@OneToMany(mappedBy = "A")
private List<B> bs;
}
class B
{
@ManyToOne(optional=false)
@JoinColumn(name = "id_a", referencedColumnName = "id_a")
private A a;
}
Przykładowe dane w tabeli B.
id_b --------- id_a-------- name(TEXT typ)
1 --------- 1 ----------- ananas
2 --------- 1 ----------- ananas
3 --------- 1 ----------- pomidor
4 --------- 2 ----------- jablko
5 --------- 3 ----------- ogórek
Teraz tworzę zapytanie ,które ma mi zwrócić objekt A ,
który będzie zawierać listę objektów B gdzie pole name = 'ananas'
W tradycyjnym SQL mogę to zrobić tak :
SELECT a.id,b.id,b.nazwa FROM A a
JOIN B b ON b.id_a = a.id_a
WHERE b.nazwa = 'ananas'
i jest ok jednak nie zmapowane na objekty
Teraz chcę to samo uzyskać stosując objekt javax.persistence.Query
SELECT a FROM A a JOIN a.bs b WHERE b.nazwa = 'ananas'
niestety pobierany jest także pomidor
więc jak prawidłowo powinna wyglądać te zapytanie