Tuve el mismo problema.
Solo tiene que crear la entidad intermedia y hacer dos relaciones uno a muchos.
Si marcó las declaraciones que genera para actualizar una relación de muchos a muchos, no la usaría de todos modos. Cuando agrega un nuevo artículo a una relación de muchos a muchos la relación en la primera carga (creo que esto genera una declaración de selección), luego actualiza esa relación y realiza una confirmación. Estas cosas suceden:
Delete se realiza para cada objeto de la matriz (tal vez es una instrucción de eliminación o N DELETE, no me acuerdo)
todos los objetos se vuelven a insertar en la base de datos (N insertar declaraciones + el nuevo).
Si realiza muchas actualizaciones de la relación muchos a muchos, la asignación de muchos a muchos no es para usted. Puede usar muchos para muchos en objetos que no cambian o no cambian muy a menudo (debido a todas las eliminaciones y reinserts).
Debe crear 3 objetos (digamos Usuario, Publicación, Voto, que es una tabla de usuario de USER_POST). Crea claves primarias para todas esas tablas (incluso para USER_POST). Cree una clave sustituta y establezca una restricción para USER_ID, POST_ID para ser uniqe para la tabla USER_POST. Correlacionarlo como relaciones normales de uno a muchos, muchos a uno (padre-hijo, padre-hijo) y eso es todo.
Cuando no se necesita información adicional, este enfoque hace que la persistencia del modelo de dominio dependa de – Paco
Sí, no deseo agregar una clase no relacionada con el negocio a mi modelo para esto. Sin embargo, he hecho un aumento y no puedo hacerlo de otra manera. ¿Estoy en lo cierto al pensar que NHibernate no es compatible con esto? Si es así, ¿alguien sabe por qué no? – JontyMC
¿Qué tal el caché de segundo nivel? – dariol