For that reason our advise is the usage of <idbag> for many-to-many...
change the representation of the relation with an entity with its id is a
piece of cake.

2009/7/13 Christian Setzkorn <[email protected]>

> Hi,
>
>
>
> I am struggling a bit with a many-to-many relationship that has features.
> Basically, I have a many-to-many relationship between items and squares - an
> item can occur in many squares and a square can have many items. I had no
> problems to implement this using NHibernate. However the requirements have
> changed - items occur in squares depending on time (years). The relation
> model should look like this (pseudo code):
>
>
>
> Table Squares
>
> (
>
>       SquareId int
>
> ...
>
> )
>
>
>
> Table Items
>
> (
>
>       ItemId int
>
> ...
>
> )
>
>
>
> Table ItemsSquares
>
> (
>
>       ItemId int,
>
>       SquareId int,
>
>       Year int
>
> )
>
>
>
> This mapping file snipped seems to create these tables:
>
>
>
> <class name="Item" table="Items" optimistic-lock="version"
> dynamic-update="true">
>
>
>
>     <id name="ItemId" unsaved-value="0">
>
>       <column name="ItemId" sql-type="bigint"/>
>
>       <generator class="identity" />
>
>     </id>
>
>
>
>       <set name="Squares" table="ItemsSquares" cascade="save-update">
>
>       <key column="ItemId"/>
>
>       <composite-element class="ItemSquare">
>
>         <parent name ="Item" />
>
>         <many-to-one name="Square"
>
>                 class="Square"
>
>                 column="SquareId"
>
>                 not-null="true" />
>
>
>
>         <property name="Year">
>
>           <column name="Year" not-null="true" sql-type="int"/>
>
>         </property>
>
>
>
>       </composite-element>
>
>     </set>
>
> </class>
>
>
>
> <class name="Square" table="Squares">
>
>
>
>     <id name="SquareId" unsaved-value="0">
>
>       <column name="SquareId" sql-type="bigint"/>
>
>       <generator class="identity" />
>
>     </id>
>
>
>
>   </class>
>
>
>
> Unfortunately, I have trouble at the 'usage site' (e.g. determine selected
> squares for given itemid). Do I have to create a class ItemSquare with a
> mapping  similar to this:
>
>
>
> <class name="ItemSquare" table="ItemsSquares">
>
>
>
>     <id name="ItemSquareId" unsaved-value="0">
>
>       <column name="ItemSquareId" sql-type="bigint"/>
>
>       <generator class="identity" />
>
>     </id>
>
>
>
>     <property name="Year">
>
>       <column name=" Year " not-null="true" sql-type="int"/>
>
>     </property>
>
>
>
>     <many-to-one name="Item" class="Item" column="ItemId" />
>
>     <many-to-one name="Square" class="Square" column="SquareId" />
>
>   </class>
>
>
>
> Any feedback would be very much appreciated. Is anyone aware of a working
> 'many-to-many relationship example with features'?
>
>
>
> Thanks,
>
>
>
> Christian
>
>
>
>
>
> >
>


-- 
Fabio Maulo

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to