Supongamos una relacion 1..* bidireccional Person->Address, es decir que una persona tiene uno a N direcciones.
Esto implica que Person es el padre, y Address el hijo.
En el mundo de los objetos esto sería : la clase Person que tiene un método "Set getAddresses()" y la clase Address que tiene un método "Person getPerson()".
Si lo pensamos en el mundo relacional Person sería PERSON[ id, name, ...] y Address sería ADDRESS[ id, person_id, city, street,...].
O sea que Address es el dueño de la relación... y Person es el lado inverso.
Es decir que "inverse=true" significa "este es el lado inverso" y "inverse=false" significa "este no es el lado inverso, es el dueño de la relación".
Otra forma de ver esto podría ser volviendo a PERSON[ id, name, ...] y ADDRESS[ id, person_id, city, street,...], en la que se observa que la columna person_id de la tabla Address es la informacion relacional entre las dos tablas. O sea que Address es el dueño de la relación, y Person es el lado inverso, como se dijo antes.
Tu transcripción está algo mal, mejor vean el original.
ResponderEliminarSaludos
http://tadtech.blogspot.com/2007/02/hibernate-when-is-inversetrue-and-when.html