@ManyToMany

Die Annotation @ManyToMany zeichnet Instanzvariable oder Accessormethoden aus, deren Typ eine Collection von Entities ist und deren Werte durch eine Many to Many Assoziation gegeben sind.

Das Annotationselement mappedBy muss bei einer der beteiligten Entitäten angegeben werden, wenn die Assoziation bidirektional ist. Bidirektional bedeutet in diesem Fall, dass Instanzen beider beteiligten Entitäten wechselseitig eine Menge von Referenzen auf Instanzen der jeweils anderen Entität besitzen:

@Entity
public class A
{
  @ManyToMany(mappedBy="as")
  public HashSet<B> bs;
}

@Entity
public class B
{
  @ManyToMany
  public HashSet<A> as;
}


Für die Seite der Many to Many Assoziation, auf der mappedBy nicht angegeben ist, können mit der Annotation @JoinTable die Details der Zwischentabelle angegeben werden.


@ManyToMany(
targetEntity=<Class>,
cascade={CascadeType.ALL|CascadeType.PERSIST|CascadeType.MERGE|CascadeType.REMOVE|CascadeType.REFRESH},
fetch=FetchType.LAZY|FetchType.EAGER,
mappedBy="<Instanzvariablenname>")