A continuacion vamos a mapear una asociación bidireccional. Vamos a realizar que la asociación entre persona y evento funcione desde ambos lados en Java. El esquema de la fundamento de datos no cambia así que todavía tendremos una multiplicidad muchos-a-muchos.

Nota
Una fundamento de datos relacional es más flexible que un lenguaje de programación de red ya que no requiere una dirección de navegación los datos se pueden ver y recuperar de cualquier manera probable.
Primero agregue una colección de participantes a la clase Event

private Set participants = new HashSet()

public Set getParticipants() {
return participants
}

public void setParticipants(Set participants) {
this.participants = participants
}
Ahora mapee este lado de la asociación en Event.hbm.xml.


set name=participants table=PERSON_EVENT inverse=true
key column=EVENT_ID
many-to-many column=PERSON_ID class=events.Person
set

Estos son mapeos normales de set en ambos documentos de mapeo. Note que los nombres de las columnas en key y many-to-many se intercambiaron en ambos documentos de mapeo. La adición más significativo aquí es el atributo inverse=true en el fundamento set del mapeo de colección de Event.

Esto implica que Hibernate debe beber el otro lado la clase Person cuando necesite descubrir información sobre el enlace entre las dos. Esto será mucho más fácil de comprender una vez que vea como se crea el enlace bidireccional entre nuestras dos entidades.