He estado tratando de familiarizarme con el atributo inverso de Hibernate, y parece ser solo una de esas cosas que es conceptualmente difícil.Cuándo usar inverse = false en NHibernate/Hibernate OneToMany relationships?
Lo esencial que consigo es que cuando se tiene una entidad matriz (por ejemplo, los padres) que tiene una colección de objetos secundarios utilizando un mapeo uno-a-muchos, estableciendo inversa = true en el mapeo le dice a Hibernate que " el otro lado (el Niño) tiene la responsabilidad de actualizarse para mantener la referencia de clave foránea en su tabla '.
Hacer esto parece tener 2 beneficios cuando se trata de agregar Niños a la colección en su código, y luego guardar el Padre (con conjunto de cascadas): you save an unneccessary hit on the database (porque sin conjunto inverso, Hibernate cree que tiene dos lugares para actualizar la relación FK), y de acuerdo a los documentos oficiales:
Si la columna de una asociación se declara NO NULO, NHibernate puede causar violaciónes de restricción cuando se crea o actualiza la asociación. Para evitar este problema , debe utilizar una asociación bidireccional con el muchos terminan valorada (el conjunto o bolsa) marcado como inverse = "true".
Todo parece tener sentido hasta ahora. Lo que no entiendo es esto: ¿cuándo quieres NO querer usar inversa = verdadero en una relación de uno a muchos?
Esto no funcionó para mí. Nunca ejecuta la actualización. Solo los inserta. – BradLaney