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();
}
@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();
}