# JPQL und Navigation durch Collection



## rmacher (12. Mrz 2014)

Hallo allerseits

Habe Problem bei der Navigation in der Collection ...

Etwas vereinfacht: 

In der Entity 'Person' ist eine Collection mit Rollen, da eine Person mehrere Rollen haben kann:


```
@OneToMany
private List<Rolle> rolleListe;
```

Eine Rolle hat aber einen RolleTyp:


```
@Entity 
public class Rolle implements Serializable {

// ...

@OneToOne
private RolleTyp typ;

// ...
}
```

Jezt würde ich gerne alle Personen holen, die einen bestimmten RolleTyp haben, z.B. DEFAULT_USER.

Folgendes habe ich versucht (von https://www.java.net/node/661498):

```
String qry = "SELECT p FROM Person p JOIN p.rolleListe liste WHERE liste.rolle.typ=:rolleTyp";
```

Klappt aber nicht:

[XML]
invalid navigation expression [p.rolleListe.typ], cannot navigate collection valued association field [rolleListe].
[/XML]

Wie könnte man dies machen?

Danke für jeden Tipp.


----------



## rmacher (12. Mrz 2014)

Nun habe ich es:


```
String qry = "SELECT p FROM Person p JOIN p.rolleListe rolle WHERE rolle.typ=:rolleTyp";
```

Mehr hier:
Java Persistence/JPQL BNF - Wikibooks, open books for an open world


----------

