nhibernate, класс с родителями и детьми, вызывающими дубликаты ключей - PullRequest
1 голос
/ 16 декабря 2008

любая помощь, которую вы можете оказать, с благодарностью принята. Я смотрел на эту проблему снова и снова и не могу найти решение. Это, вероятно, смотрит мне в лицо: (

У меня есть следующий класс со списком родителей и детей, которые необходимо сохранить в таблице иерархии.

class Item  
{  
    public virtual int Id {get;set;}  
    public virtual List`<Item`> Parents {get;set;}  
    public virtual List`<Item`> Children {get;set;}  
}  

В настройках гибернации у меня есть:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
  assembly="Pl.Components" namespace="Pl.Components"`>  
    <class name="Pl.Components.Item, Pl.Components" table="Item">  
        <id name="Id" type="Int32"  column="Id" >  
            <generator class="identity" />  
        </id>  
        <bag name="Parents" lazy="true" table="Hierarchy" cascade="save-update">  
            <key column="ChildId"/>  
            <many-to-many class="Item" column="ParentId" />  
        </bag>  
        <bag name="Children" lazy="true" table="Hierarchy" cascade="delete">  
            <key column="ParentId"/>  
            <many-to-many class="Item" column="ChildId"/>  
        </bag`>  
    </class>  
</hibernate-mapping>  

Это приводит к дублированию ключей в таблице иерархии, поскольку пары ключей вставляются как для дочернего, так и для родительского элемента.

Есть ли какое-либо решение этой проблемы, кроме сохранения родительской и дочерней иерархий в отдельных таблицах?

1 Ответ

2 голосов
/ 19 декабря 2008

Вам необходимо пометить один из пакетов как обратный = "true". Смотри http://www.hibernate.org/hib_docs/nhibernate/html/collections.html#collections-bidirectional

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...