Member Of

Angenommen, eine Many to Many Assoziation wird zwischen zwei Entitäten Ah und Be wie folgt aufgebaut:

@Entity
@NamedQueries({@NamedQuery(name = "AhByBe", query = "SELECT a FROM Ah a WHERE :be MEMBER OF a.bes")})
public class Ah implements Serializable
{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private Long id;
    //
    @ManyToMany
    @JoinTable(name = "AH_BE",
            joinColumns = {@JoinColumn(name = "AH_ID")},
            inverseJoinColumns = {@JoinColumn(name = BE_ID")})
    private List<Be> bes;
    //
    ...
}

@Entity
public class Be implements Serializable
{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "ID")
    private Long id;
    //
    ...
}

Dann kann man alle Ahs, die mit einem konkreten Be in Verbindung stehen, mit der oben angegebenen NamedQuery AbByBe finden:

List<A> findAhByBe(Be be)
{
    Query query = entityManager.createNamedQuery("AhByBe");
    query.setParameter("be", be);
    //
    return query.getResultList();
}