Pregunta

En mi base de datos Tengo Grupos de Usuarios y que tienen una relación de muchos a muchos. El usuario tiene un conjunto de UserGroup, el objeto de dominio UserGroup no ve el usuario.

<class name="User" table="UserTable">
    <set name="UserGroup" cascade="save-update" access="field.pascalcase-underscore" table="User2UserGroup">
        <key column="User_Id" />
        <many-to-many class="UserGroup" column="UserGroup_Id" />
    </set>
    ...

Lo que estoy tratando de lograr es la nhibernate la supresión de la correlación de la tabla de unión cuando se borra ya sea un un grupo de usuarios o usuario. Además de usuario y de grupo son objetos secundarios de, llamémoslo un dominio. Dominio hace cascade="all-delete-orphans", así que cuando un dominio que se elimina en cascada elimina todos sus usuarios y los grupos de usuarios.

Volver al Usuario <-> relación UserGroup: Si he entendido bien que no puedo usar cualquier forma de cascada que implica borrar tan sólo quiero eliminar la asociación entre dos objetos y no el propio objeto relacionado. (Un grupo no se desvanecen, incluso si es un huérfano y un usuario sin un grupo es una cosa válida en mi mundo -.. Él simplemente no tiene derecho a hacer nada en absoluto)

¿Es necesario mirar eventos / interceptores? O puedo hacer yo lo que quiero lograr mediante el control de la asignación?

¿Fue útil?

Solución

Si está utilizando una base de datos que admite que puede no establecer la cascada en la propia base de datos en forma de una restricción de clave externa?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top