sql >> Base de Datos >  >> RDS >> PostgreSQL

Hibernate 'Inverse' en el archivo de mapeo

Inverse simplemente decide qué entidad en una relación es responsable de actualizar la base de datos para reflejar la asociación.

Suponga una asociación bidireccional de uno a muchos. Hay dos clases en el código A y B, A contiene un conjunto de B, B mantiene una referencia a A. A nivel de base de datos, solo hay una clave externa para actualizar, la tabla para B contiene una columna para la clave principal de A.

En este caso, supongamos que ponemos el inverso =verdadero en el lado conjunto. Esto implica que solo agregar una entidad al conjunto no activará la actualización de la clave externa. Porque la responsabilidad de actualizar la clave externa recae en B. Entonces, agregar un objeto B al conjunto que mantiene A no es suficiente para actualizar la columna de clave externa. objectA.addToSetOfB(objectB) no afectará la clave externa.

Solo cuando B recibe una referencia a A, se actualizará la clave externa en la tabla para B. Por lo tanto, objectB.setA(objectA) seguramente actualizará la clave externa y establecerá la relación.

Creo que el mismo concepto también se aplicará a las relaciones de muchos a muchos.